我有这个代码监听ENTER和MULTIPLY并在按下它们时调用一个方法。问题是它只在按下enter时调用它,它不能用于乘法?我做错了什么?
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
if (event.getAction() == KeyEvent.ACTION_UP) {
enter();
return true;
}
}
if (event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_MULTIPLY) {
if (event.getAction() == KeyEvent.ACTION_UP) {
enter();
return true;
}
}
return super.dispatchKeyEvent(event);
};
编辑:尝试使用KEYCODE_STAR
仍然无法正常工作......它有什么问题?
答案 0 :(得分:0)
使用以下onKeyDown(..)
覆盖方法代替。即
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
enter();
return true;
}
if (event.getKeyCode() == KeyEvent.KEYCODE_NUMPAD_MULTIPLY) {
enter();
return true;
}
return super.onKeyDown(keyCode, event);
}
查看this SO Q&A thread以获取进一步说明