2016-08-29 8 views
0

私の問題: ユーザーは2秒私はカウンターコードをどのように残すことができますか?

マイコードのカウンター内IMAGEBUTTONをクリックした場合、私は、私は私のカウンターのコード(CountDownTimer)を残すことができるか、分からない:

final ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback); 

avatarScroll.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ursprungAvatar = !ursprungAvatar; 
      if(ursprungAvatar) { 
       //image change with arrow 
       ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback); 
       avatarScroll.setImageResource(R.drawable.avatarback_pfeil); 
       new CountDownTimer(2000, 1000) { 
        public void onTick(long millisUntilFinished) { 
         // 
        } 
        public void onFinish() { 
         //image change without arrow 
         ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback); 
         avatarScroll.setImageResource(R.drawable.avatarback); 
         ursprungAvatar = !ursprungAvatar; 
        } 
       }.start(); 

      } else { 
       //image change without arrow 
       ImageButton avatarScroll_ursprung = (ImageButton) findViewById(R.id.imgBtnAvatarback); 
       avatarScroll_ursprung.setImageResource(R.drawable.avatarback); 
      } 

    } 
}); 
+0

あなたは意図された動作について詳細を教えてください。最初のクリックで、タイマーが開始され、2回目のクリックで停止する必要がありますか?これに基づいて、else caseでタイマーを終了するだけで済みます。 – thst

+1

"終了"を意味する場合、停止するには、グローバルなCountDownTimerオブジェクトを作成し、タイマーが実行された場合にキャンセルを呼び出す必要があります。 – Opiatefuchs

+0

これはあまりにも曖昧です。あなたがやりたいことのより適切な記述で編集してください。 – Vucko

答えて

1

私が行動権を得たら、あなたがする必要があるのは、elseケースにtimer.cancel()を追加して、作成したタイマーへの参照を保持します(例えば、フィールドにするなど)。

関連する問題