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;
}
});
不知道你这个问题是否已经解决, 如果还没有解决的话:问题没有具体内容,请提供具体的问题。