2010-10-29 113 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