1,key -- 實體按鍵,
現在手機物理按鍵越來越少
常見的有 keycode_volume_down/up keycode_power keycode_back keycode_home keycode_menu
在乙個activity 過載父類 的下面這三個方法來處理按鍵事件
public boolean onkeydown(int keycode, keyevent event)
public boolean onkeyup(int keycode, keyevent event)
public boolean onkeylongpress(int keycode, keyevent event)
很明顯,長按事件一般是放到 onkeylongpress 函式中來處理的。
那具體是怎麼做的呢,下面請看步驟:
第一步,先在 onkeydown 函式中判斷 event.getrepeatcount 的次數(實際上長按就是由一系列的onkeydown事件觸發的)
return super.onkeydown(keycode, event);
}如果一直按著不放,通過打 log 可以看到
onkeydown event.getrepeatcount() 0
onkeydown event.getrepeatcount() 1
onkeydown event.getrepeatcount() 2
onkeydown event.getrepeatcount() 3
onkeydown event.getrepeatcount() 4
onkeydown event.getrepeatcount() 5
onkeydown event.getrepeatcount() 6
onkeydown event.getrepeatcount() 7
onkeydown event.getrepeatcount() 8
onkeydown event.getrepeatcount() 9
onkeydown event.getrepeatcount() 10
onkeydown event.getrepeatcount() 11
onkeydown event.getrepeatcount() 12
……第二步,過載 onkeylongpressed 函式,在這個函式中你可以新增你的處理
@override
public boolean onkeylongpress(int keycode, keyevent event)
互斥處理的原因是,長按事件處理完後,鬆開按鍵後就會執行 onkeyup 函式。而這兩處針對相同的按鍵想要實現的功能又不一樣
固在此新增乙個 private boolean locklongpresskey = false; 變數,在 onkeylongpress 函式中處理過以後,在 onkeyup中便不再處理。
2, button
自定義的 button 長按事件則是通過實現 onlongclicklistener 介面來做到的。
例項如下:
import android.os.bundle;
import android.view.view;
import android.view.view.onlongclicklistener;
import android.widget.button;
import android.widget.toast;
public class myactivity extends activity implements onlongclicklistener
public boolean onlongclick(view v)
return false; }}
Vue如何監聽鍵盤事件中的按鍵
在我們的專案經常需要監聽一些鍵盤事件來觸發程式的執行,而vue中允許在監聽的時候新增關鍵修飾符 submit 對於一些常用鍵,還提供了按鍵別名 submit 縮寫形式 全部的按鍵別名 enter tab delete 捕獲 刪除 和 退格 鍵 esc space up.down left right...
TabActivity中監聽按鍵響應
在普通的activity中我們可以通過重寫onkeydown int keycode,keyevent event 方法實現對手機按鍵進行監聽,而當要監聽的activity為tabactivity時 其實listactivity也一樣 這個方法並不起作用。如何解決這個問題呢?乙個activity繼承...
TabActivity中監聽按鍵響應
在普通的activity中我們可以通過重寫onkeydown int keycode,keyevent event 方法實現對手機按鍵進行監聽,而當要監聽的activity為tabactivity時 其實listactivity也一樣 這個方法並不起作用。如何解決這個問題呢?乙個activity繼承...