6

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

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

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

这与软键盘或虚拟键盘无关

4

2 回答 2

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

于 2011-03-14T09:03:06.237 回答
1

Activity 类已经实现 KeyEvent.CallBack 看这里

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

于 2011-03-14T09:03:27.703 回答