如何在不使用EditText字段的情况下捕获硬件键盘事件?
例如,在一个简单的活动中,在屏幕上显示一个正方形,当在滑动键盘上按下“B”时我想将其变为蓝色,当按下“G”时,将其变为绿色等。
我不需要颜色代码的帮助,只是如何拦截按键
这不是关于软键盘或虚拟键盘
答案 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
你只需要覆盖这些方法并实现你想要的所有事件