Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.23 KB | None | 0 0
  1. package ru.ifmo.timerapp_derbenyova;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4.  
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.os.SystemClock;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.TextView;
  11.  
  12. public class MainActivity extends AppCompatActivity {
  13.  
  14.     private long seconds;
  15.     private boolean isRunning;
  16.     private Handler customHandler;
  17.     private TextView textView;
  18.  
  19.  
  20.     public void onClickStart(View view) {
  21.         isRunning = true;
  22.         customHandler.postDelayed(updateTimerThread, 1000);
  23.  
  24.     }
  25.  
  26.     public void onClickStop(View view) {
  27.         isRunning = false;
  28.         customHandler.removeCallbacks(updateTimerThread);
  29.     }
  30.  
  31.     public void onClickReset(View view) {
  32.         isRunning = false;
  33.         seconds = 0;
  34.         textView.setText(R.string.start_value);
  35.         customHandler.removeCallbacks(updateTimerThread);
  36.     }
  37.  
  38.  
  39.     public void runTimer(TextView timerValue) {
  40.         long mins = seconds / 60;
  41.         long hours = mins / 60;
  42.         timerValue.setText(String.format("%02d", hours % 60) + ":"
  43.                 + String.format("%02d", mins % 60) + ":"
  44.                 + String.format("%02d", seconds % 60));
  45.         if (isRunning) seconds += 1;
  46.     }
  47.  
  48.     @Override
  49.     public void onSaveInstanceState(Bundle savedInstanceState) {
  50.         savedInstanceState.putLong("seconds", seconds);
  51.         savedInstanceState.putBoolean("isRunning", isRunning);
  52.         super.onSaveInstanceState(savedInstanceState);
  53.     }
  54.  
  55.     @Override
  56.     protected void onCreate(Bundle savedInstanceState) {
  57.         customHandler = new Handler();
  58.         super.onCreate(savedInstanceState);
  59.         textView = findViewById(R.id.timerValue);
  60.         if (savedInstanceState != null) {
  61.             seconds = savedInstanceState.getLong("seconds");
  62.             isRunning = savedInstanceState.getBoolean("isRunning");
  63.         } else {
  64.             seconds = 0;
  65.             isRunning = false;
  66.         }
  67.         setContentView(R.layout.activity_main);
  68.  
  69.     }
  70.  
  71.     private Runnable updateTimerThread = new Runnable() {
  72.         public void run() {
  73.             runTimer(textView);
  74.             customHandler.post(this);
  75.         }
  76.     };
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement