关于#android一次回车触发多次事件#的问题,如何解决?

android一次回车触发多次事件
java版回车事件监听

判断回车事件的方法如下:

监听事件为:
View.OnKeyListener


public static boolean isEnterKeyDown(int keyCode, KeyEvent keyEvent) {
        return keyEvent != null && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_DOWN;
    }

但是发现会触发两次;
经研究发现 在模拟器中 一次键盘的回车事件 分别触发了两次 ACTION_UP和两次 ACTION_DOWN

sdk版本
```javascript
build_versions.min_sdk = 19
build_versions.target_sdk = 29
build_versions.build_tools = "29.0.3"
ext.build_versions = build_versions


使用 OnEditorActionListener:在处理文本输入时,可以使用 EditText 的 setOnEditorActionListener 方法来监听回车事件。这个监听器可以确保只会在用户完成输入并按下回车键时才触发回调。

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
        if (actionId == EditorInfo.IME_ACTION_DONE || isEnterKeyDown(keyEvent)) {
            // 处理回车事件
            return true;
        }
        return false;
    }
});


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    问题没有具体内容,请提供具体的问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^