Android захватывает событие аппаратной клавиатуры без просмотра edittext

Как я могу захватить события аппаратной клавиатуры без использования поля EditText?

Например, в простом действии отображение квадрата на экране, когда на клавиатуре слайдера нажимается «B», я хочу, чтобы он стал синим, когда нажимается «G», он становится зеленым и т. д.

Мне не нужна помощь с цветовым кодом, просто как перехватить нажатие клавиши

Это не про софт или виртуальную клавиатуру


person Noah    schedule 14.03.2011    source источник


Ответы (2)


Классы Android обычно предоставляют обработчики событий, которые вы можете реализовать при их подклассировании. Класс Activity имеет следующие обработчики событий:

  • onKeyDown(int keyCode, KeyEvent event)
  • onKeyLongPress(int keyCode, KeyEvent event)
  • onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
  • onKeyShortcut(int keyCode, KeyEvent event)
  • onKeyUp(int keyCode, KeyEvent event)

Кроме того, все представления имеют следующие обработчики событий:

  • onKeyDown(int, KeyEvent)
  • onKeyUp(int, KeyEvent)

Я предполагаю, что есть много других классов, которые имеют аналогичные обработчики событий для ключевых событий, но этого должно быть достаточно для вашей ситуации. KeyEvent затем содержит информацию о нажатой клавише, т. е. код клавиши.

person poke    schedule 14.03.2011

Класс Activity уже реализовал KeyEvent.CallBack, см. здесь

вам просто нужно переопределить эти методы и реализовать все события, которые вы хотите

person Sunil Pandey    schedule 14.03.2011