Android:onKeyListener模拟两个按键实例

Android:onKeyListener模拟两个按键实例,android,Android,可能重复: 我试图通过按下键盘上的enter按钮来解决显示中包含的表达式(EditText),但它总是像我按下两次按钮一样对其进行解释。有人知道为什么会发生这种情况吗?也不是安卓系统的人,但它注册两次的事实让我认为OnKey包含onKeyDown和onkeydup。听onKeyUp对你也有用吗?试试 Display.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, K

可能重复:


我试图通过按下键盘上的enter按钮来解决显示中包含的表达式(EditText),但它总是像我按下两次按钮一样对其进行解释。有人知道为什么会发生这种情况吗?

也不是安卓系统的人,但它注册两次的事实让我认为OnKey包含onKeyDown和onkeydup。听onKeyUp对你也有用吗?

试试

Display.setOnKeyListener(new OnKeyListener() {    
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_ENTER:

                // Check for ACTION_DOWN only...
                if (KeyEvent.ACTION_DOWN == event.getAction()) {
                    solveExpression();
                    return true;
                }
        }
    }
});
“操作”可以是
action\u DOWN
action\u UP
action\u MULTIPLE
(最后一个用于按住键时)。将为任何/所有这些操作调用onKey()

正如另一个答案提到的,它会触发两次,因为一次是向下,一次是向上

if (event.getAction()!=KeyEvent.ACTION_DOWN) // we catch only key down events
    return true;
因此,当onClick时,您将停止侦听其他keyevents

如果您不希望链中其他人获得另一项工作的事件,您应该设置

    return false; 

我不是安卓的人,但代码对我来说很好。请检查哪个是钥匙码(是66)?仅在
KeyEvent时返回true。操作_DOWN
将触发logcat中的许多调试输出:
操作_DOWN,但键已关闭,且此事件不是重复的键。
这样做将停止侦听KeyEvent dpad\u center作为onClick@ArmasCyndromic注意这个问题-这就是目标。@gangus true:)请回答这个问题执行此操作将停止侦听keyevent dpad_center作为onClick@ArmasCyndromic确切地问题中的问题就解决了。
    return false;