Я хочу поймать нажатие любой клавиши на клавиатуре. Я не хочу EditView или TextView в своей деятельности, событие должно обрабатываться из расширенного представления внутри моей активности.Android - нажмите клавишу клавиатуры
Я просто попытался это:
1) Перекрыть метод onKeyUp(int keyCode, KeyEvent event)
активности. Это не работает с softkeybord, он просто улавливает несколько жестких клавиш.
2) Создайте мой OnKeyListener
и зарегистрируйте его в моем представлении, который содержит зарегистрированный и рабочий OnTouchListener
. Это не работает с softkeyboar.
3) Переопределить метод onKeyUp(int keyCode, KeyEvent event)
View. Это не работает на всех niether, если я устанавливаю свой OnKeyListener, и если я его не установлю.
4) С объектом InputMethodManager
Позвоните по методу showSoftInput
и передайте ему мой вид. Это не работает ни для повышения клавиатуры, действительно, мне нужно позвонить toggleSoftInput
; ни поймать ключевые события.
Я тестировал все только в эмуляторе, но думаю, этого достаточно. Почему так сложно усвоить простое ключевое событие с клавиатуры?
И когда вы изучили исходный код классов, как '' EditText' и TextView', чтобы увидеть, как они справиться с этим, что вы узнали? – CommonsWare
Изучение исходного кода может помочь, но займет слишком много времени. – Bemipefe