2017-05-02 34 views
0
public void reverseTimer(int Seconds,final TextView tv,final Button button,final TextView txt2){ 

    final CountDownTimer CountDownTimer1 = new CountDownTimer(Seconds* 1000+1000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      int seconds = (int) (millisUntilFinished/1000); 
      int minutes = seconds/60; 
      seconds = seconds % 60; 
      tv.setText("Time : " + String.valueOf(minutes) 
        + ":" + String.valueOf(seconds)); 
     } 
     public void onFinish() { 
      if(score > highscore) 
       sethighscore(txt2); 
      tv.setText("Completed"); 
      Reset(tv,button,txt2); 
     } 
    }.start(); 
} 

私がtrueに「クリック」とリセットボタンが押された場合、またはタイマーが終了したときに呼び出されリセット機能、私は「OnTick」に以下の条件を追加しようとしただし、リセットボタンがあります。タイマーが初期化されていない可能性がありますか?

if(clicked == true) 
{ 
    CountDownTimer1.cancel(); 
} 

しかし、私は私はそれが私はちょうどそれを初期化し、どのようにするかを理解していない意味を知って初期化されていない可能性があること、エラーを取得しますか?または私はこの機能の外でそれを停止することができる別の方法がありますか?

+0

私はあなたがより多くのコンテキストを与えるために必要になるだろうと思います。タイマーコードに関連したリセットコードはどこにありますか? – Carcigenicate

+0

投稿するlogcat – Denny

答えて

0

CountDownTimerの抽象サブクラスを作成しています。 onTickonFinishのすべてのコードは、そのオブジェクトに属しています。
これらのメソッドの内部では、thisでオブジェクトを参照できます。だから、あなたは、単に行うことができます。

this.cancel(); 

あるいは単に:

cancel(); 
+0

これは動作します!!! ありがとう、私はちょうど私がどのようにダム私は実現しました – Dejan

関連する問題