1

我有一個View覆蓋了OnKeyDown事件。我可以得到Key Code和KeyEvent,但似乎我錯過了一些東西。在Android中從物理鍵盤獲取正確的文本輸入

讓我解釋一下。對於非美國的鍵盤佈局,我得到的關鍵代碼是錯誤的。例如,當我在我的西班牙語鍵盤中按下ñ鍵時,我希望收到一個「ñ」字母,但是我得到一個Keycode.AltLeft作爲鍵碼。

我如何得到真實的信?

另一個有問題的情況是加重的字符:當我按'鍵和o鍵,我不應該收到兩個事件,但只有一個字母ó。

+0

「我希望收到一個」ñ「字母 - 所有語言中的所有字符都沒有'KEYCODE_'值。當您在[KeyEvent]上調用'getUnicodeChar()'(https:// developer .android.com/reference/android/view/KeyEvent.html#getUnicodeChar()),你會找回什麼?「當我按下'key和o鍵時,我不應該收到兩個事件' - 爲什麼你認爲呢?畢竟[getDeadChar()']的文檔(https://developer.android.com/reference/android/view/KeyCharacterMap.html#getDeadChar(int,%20int))似乎不同意 – CommonsWare

+0

「當你在KeyEvent上調用getUnicodeChar()時,你會得到什麼迴應?」我得到一個0(零) – SuperJMN

+0

好吧,你是對的:)我剛剛測試過,'鑰匙不開火KeyPress事件,只有當事後按下「o」時纔會觸發,但是使用getUnicodeChar你會提到我得到了111而不是243(Unico對於「ó」) – SuperJMN

回答

0

你想做什麼?這可能太低級了。關鍵字可能並不一定與最終輸入的文字有關。例如,要產生日文字符,必須按幾個鍵的序列。