EditText的onEditorAction监听事件执行两次

项目实现搜索功能时,使用Charles抓包查看网络请求,发现使用软键盘触发一次搜索会执行2次Api请求。通过调试发现原因是Android的EditText通过setOnEditorActionListener给文本编辑框设置监听事件,但是在其处理方法onEditorAction中的逻辑在每次回车后都触发了两次,原来是在键盘回车的ACTION_UP和ACTION_DOWN时都会触发这个方法。因此需要对代码做下调整,防止执行2次网络请求耗费流量和性能。

etSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
                    doSearch();
                    return true;
                }
                return true;
            }
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,781评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,602评论 0 17
  • 董沛沛 洛阳 焦点讲师班三期 坚持原创分享第111天 昨晚上课,今天约练,收获有很多,简单的梳理一下。 课上我拿出...
    缘源流长阅读 349评论 0 1
  • 我读汪国真 文/小哲 没读过他太多的诗 仅是一首两首 但是就仅仅这一首两首 足可以让我在世人面前卖弄 吟诵百遍千遍...
    小哲小诗阅读 231评论 0 0