Chcę uchwycić naciśnięcie dowolnego klawisza w softkeyboard. Nie chcę edytować ani widoku tekstu w mojej aktywności, zdarzenie musi być obsługiwane z rozszerzonego widoku w mojej aktywności.Android - Uzyskaj naciśnięcie klawisza klawiatury
Właśnie próbowałem:
1) Zastąpić metodę onKeyUp(int keyCode, KeyEvent event)
aktywny. To nie działa z softkeybord, po prostu łapie kilka hardkeyboard.
2) Utwórz mój OnKeyListener
i zarejestruj go w moim widoku, który zawiera zarejestrowany i działający OnTouchListener
. To nie działa w ogóle przy pomocy softkeyboar.
3) Zastąpienie metody widoku onKeyUp(int keyCode, KeyEvent event)
. To nie działa wcale niether, jeśli ustawię mój OnKeyListener, lub jeśli go nie ustawię.
4) Z obiektem InputMethodManager
Zadzwoń do metody showSoftInput
i przekaż mu mój widok. To nie działa ani dla podniesienia klawiatury, rzeczywiście muszę zadzwonić pod numer toggleSoftInput
; ani złapać kluczowych wydarzeń.
Testowałem wszystko tylko w emulatorze, ale uważam, że wystarczy. Dlaczego tak trudno wziąć proste wydarzenie z klawiatury?
A kiedy zbadał kod źródłowy do klas, takich jak 'EditText' i' TextView', aby zobaczyć, jak sobie z tym, co się nauczyłeś? – CommonsWare
Badanie kodu źródłowego może pomóc, ale wymaga czasu. – Bemipefe