1. 程式人生 > >Android 按鍵長按與短按識別

Android 按鍵長按與短按識別

在Android中已經有了長按與短按的識別,只是長按識別的時間比較短 ,大概在1s以上就認為是長按了。主要的思路是設定一個標誌位,利用事件相應次數函式event.getRepeatCount()來設定標誌位。主要用的函式是按鍵響應的三個函式 onKeyLongPress,onKeyDown和onKeyUp,具體程式碼如下:

private boolean shortPress = false; @Override public boolean onKeyLongPress(int keyCode, KeyEvent event) {     if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {         shortPress = false;       //長按要執行的程式碼         return true;     }     return false; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) {     if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {         if(event.getAction() == KeyEvent.ACTION_DOWN){
            event.startTracking(); //只有執行了這行程式碼才會呼叫onKeyLongPress             if(event.getRepeatCount() == 0){                 shortPress = true;             }             return true;         }     }     return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) {     if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {         if(shortPress){             //短按要執行的程式碼         }          shortPress = false;         return true;     }     return super.onKeyUp(keyCode, event); }