Я хочу поймать нажатие любой клавиши на клавиатуре. Я не хочу EditView или TextView в моей деятельности, событие должно быть обработано из расширенного представления внутри моей деятельности.
Я только что попробовал это:
1) Переопределите метод действия onKeyUp(int keyCode, KeyEvent event)
. Это не работает с softkeyboard, оно просто ловит несколько hardkeyboard.
2) Создайте мой OnKeyListener
и зарегистрируйте его в моем просмотре, который содержит зарегистрированный и рабочий OnTouchListener
. Это не работает вообще с softkeyboard.
3) Переопределите метод просмотра onKeyUp(int keyCode, KeyEvent event)
. Это не работает вообще, если я не установил свой OnKeyListener и не установил его.
4) С помощью объекта InputMethodManager
Вызовите метод showSoftInput
и передайте его моему представлению. Это не работает ни для поднятия клавиатуры, на самом деле я должен позвонить toggleSoftInput
; ни поймать ключевые события.
Я тестировал все только в эмуляторе, но я думаю, что этого достаточно. Почему так сложно взять простое клавишное событие с клавиатуры?