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