2013-08-30 32 views
1
public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if(this.keyHandler != null) this.keyHandler.onKeyDown(keyCode, event); 
     return super.onKeyDown(keyCode, event); 
    } 

這是我的OpenGL Surface視圖中的一種方法。當顯示鍵盤時,所有按鍵 都會導致調用此重寫回調函數。我已經測試了我的華碩TF101(Android 4.0.4),一切正常,但在我的LG nexus 4退格鍵(KEYCODE_DEL)按鍵沒有任何作用!Android - 退格鍵不會發出onKeyDown回調

有什麼我失蹤?

編輯:我也試圖重寫我的活動類 dispatchKeyEvent(KeyEvent事件),但仍然沒有捕獲退格鍵。

回答

1

時,有兩個獨立的bug(發出42904和62306)影響KEYCODE_DEL你可以重寫它做其他事情在默認的Google鍵盤(LatinIME)中生成。某些版本的鍵盤有一個錯誤,一些有另一個錯誤,有些則沒有。所以,這就是爲什麼有些設備會出現問題,而其他設備則不會。它取決於設備上安裝的Google鍵盤的版本。

我已經研究過這個問題,並設計了一個解決方法,使用代碼,似乎解決了這兩個問題。展示解決方法的帖子也解釋了它們在哪裏以及如何發生。這篇文章可以在這裏找到:

Android - cannot capture backspace/delete press in soft. keyboard