我想抓住按鍵的任何鍵的按下。我不想在我的活動中使用EditView或TextView,必須從我的活動中的擴展視圖處理事件。Android - 獲取鍵盤按鍵
我只是嘗試這樣做:
1)重寫onKeyUp(int keyCode, KeyEvent event)
活性的方法。這不適用於軟鍵,它只是抓住幾個硬鍵盤。
2)創建我的OnKeyListener
並在我的視圖中註冊,其中包含已註冊並正在運行的OnTouchListener
。這對softkeyboar根本不起作用。 3)覆蓋onKeyUp(int keyCode, KeyEvent event)
查看方法。如果我設置了我的OnKeyListener,或者我沒有設置它,這一切都無法工作。
4)與InputMethodManager
對象調用方法showSoftInput
並將其傳遞給我的View。這不起作用,因爲我不得不打電話給toggleSoftInput
;也不是爲了趕上關鍵事件。
我測試了所有隻在模擬器中,但我認爲這就夠了。爲什麼從鍵盤上採取一個簡單的關鍵事件是如此複雜?在Activity
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.i("key pressed", String.valueOf(event.getKeyCode()));
return super.dispatchKeyEvent(event);
}
當你檢查的源代碼,像'EditText'和類'TextView',看他們如何處理它,你學到了什麼? – CommonsWare
研究源代碼可以幫助但花費太多時間。 – Bemipefe