Как остановить таймер, который еще не закончился, а затем запустить новый? - PullRequest
3 голосов
/ 09 марта 2012

Я пытаюсь сделать игру в догадки, своего рода. Проблема заключается в том, что мой таймер переходит в следующий после ответа на вопрос (нажатие кнопки) и запуска нового таймера. Это приводит к тому, что два таймера изменяют текстовое представление с разными интервалами, а это не так, как должно быть. Я хотел бы знать, как остановить мой предыдущий отсчет и начать новый. Спасибо! Вот мой код:

button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
 final TextView textic = (TextView) findViewById(R.id.button1);
                                long total = 30000;
            final CountDownTimer Count = new CountDownTimer(total, 1000) {

                public void onTick(long millisUntilFinished) {
                    textic.setText("Time Left: " + millisUntilFinished / 1000);
                }
                public void onFinish() {
                    textic.setText("OUT OF TIME!");
                    finish();
                }
                }; 
                Count.start();

Ответы [ 2 ]

5 голосов
/ 09 марта 2012

Он не проверял код, но я бы использовал что-то вроде этого:

 final TextView textic = (TextView) findViewById(R.id.button1);
 final android.os.CountDownTimer Count = new android.os.CountDownTimer(total, 1000) {
       public void onTick(long millisUntilFinished) {
           textic.setText("Time Left: " + millisUntilFinished / 1000);
       }
       public void onFinish() {
           textic.setText("OUT OF TIME!");
       }
 }; 
 button.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
          Count.cancel();
          Count.start();
      }
   });
0 голосов
/ 10 мая 2016

финиш CountDownTimer в На финише

    @Override
    public void onFinish() {
        Log.v(TAG, "On Finish");
        textvieew.setText("your text");
        countDownTimer.cancel();

    }
...