【发布时间】:2015-07-18 12:30:14
【问题描述】:
我试图避免重复触摸,但想要一个敏感的屏幕。使用此答案中建议的方法:
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();
}
我担心的是,这可能是一种笨拙或无效的方法。我想要这方面的建议,如果有人有更优雅的建议?
【问题讨论】:
-
为什么要设置倒计时来重新启用按钮?您可以改为完成任务并在任务结束时启用按钮。
-
所有操作都在 onTouch() 方法中,因此当一个人触摸按钮时,它会延迟一段时间。相反,您可以切换一个布尔变量并检查它以启用/禁用计时器。
-
是的,您可以添加一个布尔标志,当您禁用按钮时,将该标志设为 0,反之亦然。
标签: android algorithm performance ontouchlistener countdowntimer