【发布时间】:2011-11-08 10:31:18
【问题描述】:
我希望能够在按下菜单按钮时检测单击或双击。如果检测到单击,甚至会发生一个事件,如果检测到双击,则会发生不同的事件。这是我尝试过的(使用 toast 代替事件):
private static final long DOUBLE_PRESS_INTERVAL = 250; // in millis
private long lastPressTime;
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// Get current time in nano seconds.
long pressTime = System.currentTimeMillis();
// If double click...
if (pressTime - lastPressTime <= DOUBLE_PRESS_INTERVAL) {
Toast.makeText(getApplicationContext(), "Double Click Event", Toast.LENGTH_SHORT).show();
return true;
}
// If not double click....
Toast.makeText(getApplicationContext(), "Single Click Event", Toast.LENGTH_SHORT).show();
// record the last time the menu button was pressed.
lastPressTime = pressTime;
return true;
}
问题是每次双击事件之前都会检测到单击事件。
【问题讨论】:
-
如何检测到长按?我现在正在挖掘文档但没有找到任何有用的东西? (现在长按只会显示键盘)
-
我想我明白你在说什么。我想要长按物理键盘而不是视图。该视图已经注册了一次长按。
标签: java android click double double-click