2010-10-29 155 views

回答

0

只是一个想法:
如果已经在Android中没有API来处理,那么你可以尝试推迟对单/双/三/等结论。通过在该覆盖的hadrware按钮处理程序中设置一个小超时(例如约300ms左右),并同时计算对该特定按钮的调用次数,并在计时器滴答时检查它并获得它。


编辑:

这是从我头顶的东西。稍微调整一下以获得更好的性能。

private Timer mDoubleClickTimer; 
private boolean possibleDoubleClick = false; 

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event){ 
    if(keyCode==KeyEvent.KEYCODE_MENU){ //or whatever key you want to check for double-clicks 
     if(mDoubleClickTimer!=null) {mDoubleClickTimer.cancel();} 
     if(!possibleDoubleClick){ 
      possibleDoubleClick = true; 
      mDoubleClickTimer = new Timer(); 
      mDoubleClickTimer.schedule(new TimerTask() { 
       @Override 
       public void run() { 
        //single click detected 
        //handle it here 
        possibleDoubleClick = false; 
       } 
      },300); 
     }else{ 
      //double click detected 
      //handle it here 
      possibleDoubleClick = false; 
     } 
//... other key processing if you need it 
return false; 
} 
+0

这就是我的想法......你能写一个简单的例子吗? – mlevit 2010-10-29 03:11:48

+0

这个例子适用于任何按钮,除了最重要的按钮:主屏幕按钮! – 2012-05-31 20:04:46