Android无需编辑文本视图即可捕获硬件键盘事件

时间:2011-03-14 08:57:17

标签: android keyboard hardware-interface

如何在不使用EditText字段的情况下捕获硬件键盘事件?

例如,在一个简单的活动中,在屏幕上显示一个正方形,当在滑动键盘上按下“B”时我想将其变为蓝色,当按下“G”时,将其变为绿色等。

我不需要颜色代码的帮助,只是如何拦截按键

这不是关于软键盘或虚拟键盘

2 个答案:

答案 0 :(得分:6)

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包含有关按下的键的信息,即密钥代码。

答案 1 :(得分:1)

Activity类已经实现了KeyEvent.CallBack,请参阅here

你只需要覆盖这些方法并实现你想要的所有事件