问题描述
我正在尝试通过软键盘上的击键来验证我的应用程序中的用户,我想获得:
- 释放键并按。
- 按键上的压力。
- 按键上的手指区域。
我使用了onKeyUp
和onKeyDown
,但是它不起作用。
那么如何从软键盘获取这些事件。
解决方法
代替在视图中使用onKeyDown
,而是在活动级别覆盖dispatchKeyEvent
。这将在您的关键事件到达窗口管理器之前对其进行处理,因此请确保在未明确处理的所有关键事件上调用super。使用ACTION_DOWN
的示例(因为每个事件都具有ACTION_UP
和ACTION_DOWN
)
@Override
public boolean dispatchKeyEvent(KeyEvent event){
if(event.getAction() == KeyEvent.ACTION_UP) {
return super.dispatchKeyEvent(event);
}
if (keyCode == KeyEvent.KEYCODE_DEL) {
} else if (keyCode == KeyEvent.KEYCODE_BACK) {
} else if (keyCode == KeyEvent.KEYCODE_ENTER) {
} else {
return super.dispatchKeyEvent(event);
}
}