这是我在 Android/Java 上区分单击与双击的基本代码:
int i = 0;
buttonNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i++;
Handler handler = new Handler();
Runnable r = new Runnable() {
@Override
public void run() {
i = 0;
onSingleClick();
}
};
if (i == 1) {
//Single click
handler.postDelayed(r, 250);
} else if (i == 2) {
//Double click
onDoubleClick();
}
}
});
事实是:单击时,它正确地调用“only”
onSingleClick()
。双击时,它会调用 onDoubleClick()
和 onSingleClick()
。
我该怎么办?以某种方式在
handler
上重置 i == 2
?
检测到双击时,您应该取消
Runnable
。这可以防止在识别 onSingleClick()
后执行 onDoubleClick()
。