Я стараюсь избегать повторных касаний, но вам нужен чувствительный экран. Используя метод консультировал в этом ответе:Использование обратного отсчета для включения кнопки включения
Android Preventing Double Click On A Button
Я повторное включение кнопки в процессе выполнения программы, но есть некоторые случаи, когда я не могу полагаться на ходе выполнения программы и необходимо обеспечить кнопку включен ,
Я придумал способ повторного включения этой кнопки с помощью countdowntimer
и показан в моем коде:
button.setOnTouchListener(new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event) {
disableButton(button);
countDwn();
// Do something
return false;
}
});
public void disableButton(Button button) {
button.setEnabled(false);
}
public void enableButton(Button button) {
button.setEnabled(true);
}
public void countDwn() {
CountDownTimer countDownTimer = new CountDownTimer(2000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
enableButton(button);
}
}.start();
}
Что меня беспокоит, что это может быть неуклюжим или неэффективным способом идти о это. Мне нужен совет об этом, и если у кого-то есть более элегантное предложение?
Почему вы, устанавливающего таймер обратного отсчета для повторного включения кнопки? Вы могли бы закончить свои задачи и в конце задачи включить кнопку. –
@ deepu513, если вы прочитаете вопрос, я объяснил это. –
Все операции находятся внутри метода onTouch(), поэтому при касании кнопки он будет задерживаться на определенное время.Вместо этого вы можете переключать логическую переменную и проверять ее на включение/выключение таймера. –