Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.ifmo.timerapp_derbenyova;
- import androidx.appcompat.app.AppCompatActivity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.SystemClock;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class MainActivity extends AppCompatActivity {
- private long seconds;
- private boolean isRunning;
- private Handler customHandler;
- private TextView textView;
- public void onClickStart(View view) {
- isRunning = true;
- customHandler.postDelayed(updateTimerThread, 1000);
- }
- public void onClickStop(View view) {
- isRunning = false;
- customHandler.removeCallbacks(updateTimerThread);
- }
- public void onClickReset(View view) {
- isRunning = false;
- seconds = 0;
- textView.setText(R.string.start_value);
- customHandler.removeCallbacks(updateTimerThread);
- }
- public void runTimer(TextView timerValue) {
- long mins = seconds / 60;
- long hours = mins / 60;
- timerValue.setText(String.format("%02d", hours % 60) + ":"
- + String.format("%02d", mins % 60) + ":"
- + String.format("%02d", seconds % 60));
- if (isRunning) seconds += 1;
- }
- @Override
- public void onSaveInstanceState(Bundle savedInstanceState) {
- savedInstanceState.putLong("seconds", seconds);
- savedInstanceState.putBoolean("isRunning", isRunning);
- super.onSaveInstanceState(savedInstanceState);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- customHandler = new Handler();
- super.onCreate(savedInstanceState);
- textView = findViewById(R.id.timerValue);
- if (savedInstanceState != null) {
- seconds = savedInstanceState.getLong("seconds");
- isRunning = savedInstanceState.getBoolean("isRunning");
- } else {
- seconds = 0;
- isRunning = false;
- }
- setContentView(R.layout.activity_main);
- }
- private Runnable updateTimerThread = new Runnable() {
- public void run() {
- runTimer(textView);
- customHandler.post(this);
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement