// Project StopWatch // Source code file: // Version 1, which does not account for device // rotation and pausing the app. package it372.stopwatch; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private int seconds; private boolean running; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seconds = 0; running = false; runTimer( ); } // Event listener for Start button. public void onClickStart(View view) { running = true; } // Event listener for Click button. public void onClickStop(View view) { running = false; } // Event listener for Reset button. public void onClickReset(View view) { running = false; seconds = 0; } private void runTimer( ) { final TextView timeView = findViewById(R.id.txt_time); final Handler handler = new Handler( ); handler.post(new Runnable( ) { @Override public void run( ) { int hours = seconds / 3600; int minutes = (seconds % 3600) / 60; int secs = seconds % 60; String formattedTime = String.format( "%d:%02d:%02d", hours, minutes, secs); timeView.setText(formattedTime); if (running) { seconds++; } handler.postDelayed(this, 1000); } }); } }