guzhizang 2023-07-06 16:55 采纳率: 71.4%
浏览 14
已结题

关于#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


  • 写回答

2条回答 默认 最新

  • Java Fans 全栈领域优质创作者 2023-07-06 17:15
    关注

    使用 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;
        }
    });
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月19日
  • 已采纳回答 4月11日
  • 创建了问题 7月6日

悬赏问题

  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开