Разве нажатие клавиши Enter на клавиатуре не эквивалентно щелчку мыши в Android?

Кнопки в моем макете не нажимаются на клавишу Enter. Когда я нажимаю на них мышью, код внутри onClick() выполняется. Но когда я нажимаю клавишу Enter, onClick() не вызывается.

Я знаю, что для ключей я должен использовать вместо OnKeyListener. Однако onClick() не работает как для щелчка мышью, так и для ввода с клавиатуры? Кроме того, навигация вверх и вниз с помощью клавиш со стрелками работает просто отлично, только клавиша "Ввод" не работает!

В моем приложении я использую вложенные линейные макеты, тему (стиль кнопок), селектор и анонимную реализацию OnFocusChangeListener. Также я использую эмулятор с заданным соотношением сторон. Может ли что-нибудь из этого быть отнесено к этой проблеме?

Любая помощь приветствуется!

- Кики

1 ответ

Решение

Я столкнулся с той же проблемой. Используйте кнопку изображения вместо кнопки.

Кроме того, если вы все еще хотите использовать кнопку, то:

  1. Ваша активность должна реализовывать OnKeyListener.
  2. Для вашей кнопки: mYourButton.setOnKeyListener (this);
  3. Переопределите onKey() и обработайте KEYCODE_ENTER.

Надеюсь это поможет.

Другие вопросы по тегам