Как сбросить отсчет времени каждый раз при запуске с новыми значениями? - PullRequest
0 голосов
/ 29 апреля 2019

Я создаю приложение, которое использует CountDownTimer и показывает каждое второе значение в текстовом представлении.У меня есть 3 кнопки с разным временем, но при нажатии разных кнопок значение в текстовом представлении показывает значение CountDownTimer всех времен одновременно, как каждый раз сбрасывать обратный отсчет перед вызовом.

    package com.rebootapp.myapplication;

    import android.os.CountDownTimer;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {
    TextView textView;
    CountDownTimer countDownTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.timer);

    }

    public void runtimer(View view) {
        switch (view.getId()) {
            case R.id.min3:
                countDownTimer.cancel();
                timer(10000);
                break;
            case R.id.min5:
                countDownTimer.cancel();
                timer(20000);
                break;
            case R.id.min10:
                countDownTimer.cancel();
                timer(30000);
                break;
            default:
                textView.setText("");
                break;
        }
    }

    public void timer(int t){
            countDownTimer = new CountDownTimer(t, 1000) {
                @Override
                public void onTick(long millisUntilFinished) {
                    textView.setText("" + millisUntilFinished / 1000);
                }

                @Override
                public void onFinish() {

                }
            }.start();
    }

 }

1 Ответ

0 голосов
/ 30 апреля 2019

Я использовал это, и проблема была решена внутри функции timer () и удалена countdowntimer.cancel (); из всех случаев, и это было решено

 if (countDownTimer != null) {
        countDownTimer.cancel();
    }
...