2016-08-29 3 views
0

Моя проблема: Я не знаю, как я могу оставить свой встречный код (CountDownTimer), если пользователь нажимает IMAGEBUTTON внутри счетчика 2 секундКак я могу оставить счетчик?

Моего код:

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

Не могли бы вы подробнее рассказать о предполагаемом поведении? При первом нажатии запускается таймер, при втором нажатии его следует остановить? Исходя из этого, вам нужно только закончить таймер в противном случае. – thst

+1

Если вы хотите сказать «оставить», вы хотите остановить его, тогда вам нужно создать глобальный объект CountDownTimer и отменить отмену, если таймер запустится ... – Opiatefuchs

+0

Это слишком расплывчато. Изменить с более правильным описанием того, что вы хотите сделать. – Vucko

ответ

1

Если я прав, все, что вам нужно сделать, добавляет timer.cancel() в случае else и сохраняет ссылку на созданный таймер (например, сделайте это поле).

Смежные вопросы