Я пытаюсь сделать пример использования таймера обратного отсчета с помощью кнопки и установить OnclickListener для этой кнопки. Мое значение по умолчанию - 10, и оно будет уменьшаться каждую секунду, как я могу вернуть свое значение обратно до 10?Сбросить значение по умолчанию при использовании OnclickListener в Android
0
A
ответ
1
CountDownTimer
не может быть перезапущен, его можно использовать только один раз. Вам либо нужно создать свой собственный счетный класс, который может обрабатывать перезапуск, либо просто создать новый экземпляр вашего CountDownTimer
и отменить старый экземпляр.
Смотрите пример код ниже, где мы имеем CountDownTimer
, который отсчитывает в течение 10 секунд во вторых интервалах 1, а Button
, который сбрасывает таймер, когда нажата (путем отмены текущего таймера и начать новый), и TextView
, что отображает время, оставшееся в текущем таймере.
public class YourActivity extends Activity {
private CountDownTimer countDownTimer;
private TextView timerDisplayTextView;
private static final long TEN_SECONDS = TimeUnit.SECONDS.toMillis(10);
private static final long COUNTDOWN_INTERVAL = TimeUnit.SECONDS.toMillis(1);
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Button myButton; // initialized here
// timerDisplayTextView initialized here
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
countDownTimer.cancel();
countDownTimer = getNewCountDownTimer(TEN_SECONDS);
countDownTimer.start();
showTimeInTextView(TEN_SECONDS);
}
});
countDownTimer = getNewCountDownTimer(TEN_SECONDS);
countDownTimer.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
countDownTimer.cancel();
}
private void showTimeInTextView(long millisecondsLeft) {
timerDisplayTextView.setText(TimeUnit.MILLISECONDS.toSeconds(millisecondsLeft) + " seconds left");
}
private CountDownTimer getNewCountDownTimer(long length) {
return new CountDownTimer(length, COUNTDOWN_INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
showTimeInTextView(millisUntilFinished);
}
@Override
public void onFinish() {
}
};
}
}
Смежные вопросы
- 1. Сбросить значение по умолчанию ввода в jquery
- 2. как сбросить Выберите значение по умолчанию Angular2
- 3. Android: сбросить режим выбора GridView по умолчанию
- 4. Добавить onClickListener по умолчанию GroupIndicator в ExpandableListView
- 5. Сбросить поле MySQL по умолчанию
- 6. Сбросить объекты формы по умолчанию
- 7. Сбросить стиль флажка по умолчанию
- 8. ngStorage - Сбросить значения по умолчанию
- 9. В модели YUI3, есть ли способ сбросить значение по умолчанию?
- 10. Как сбросить значение PYTHONPATH до значения по умолчанию в virtualenv?
- 11. Сбросить sqlite db по умолчанию
- 12. Сбросить iPhone-симуляторы по умолчанию?
- 13. WebView не работает в Android при использовании с OnClickListener
- 14. WebStorm. Сбросить настройки по умолчанию
- 15. Сбросить IntelliJ UI по умолчанию
- 16. Значение по умолчанию Android-предпочтения
- 17. Android CheckBoxPreference Значение по умолчанию
- 18. Hibernate - AttributeOverride значение по умолчанию при использовании встроенного
- 19. Как установить значение переименования по умолчанию при использовании @Enumerated Hibernate?
- 20. По умолчанию значение атрибута XML при использовании LINQ
- 21. Как сбросить приложение по умолчанию в Android Things OS?
- 22. Приложение сбой при использовании onClickListener в onCreateDialog
- 23. Преобразование URI по умолчанию при использовании MLCP
- 24. Значение по умолчанию при обновлении
- 25. Как сбросить список по умолчанию при обновлении (F5) в Firefox?
- 26. При использовании: =, почему с = TRUE по умолчанию?
- 27. Каталог по умолчанию при использовании WorkDirectory при использовании ProcessStartInfo
- 28. Как сбросить значение textview до значения по умолчанию?
- 29. Как сбросить стандартное значение атрибута OpenGL программы по умолчанию?
- 30. «Сбросить» приложение в состояние по умолчанию
внутри позиции OnClickListener write myCurrentValue = 10; –