软键盘搜索键监听;java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus!问题的解决办法

问题发现:

测试人员在点击搜索框,在不输入任何搜索条件的情况下,点击软键盘右下角搜索按键,出现报错

java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus

问题原因:

EditText的setOnKeyListener()监听最后return为 false;

错误的解决办法:

把return false 改为return true;

  etSearchTitle.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (i == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
                //点击软键盘搜索
                Editable editable = etSearchTitle.getText();
                int len = editable.length();
                if (len > 0) {
                   
                } else {
                   
                }

            }
            //return false;
            return true;
        }
    });

 在这样暴力的直接把false 改为true时,当你EditText输入完内容,想撤销自己输入的内容时,点击软键盘的撤销键是不好用的。

因此,再次进行更改

最终的解决办法:

  etSearchTitle.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View view, int i, KeyEvent keyEvent) {
                if (i == KeyEvent.KEYCODE_ENTER) {
                    if (!StringUtils.isNullOrEmpty(etSearchTitle.getText().toString().trim())) { //此方法是判读EditText的输入框内是否有数据
                        if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
                         
                            Editable editable = etSearchTitle.getText();
                            int len = editable.length();
                            if (len > 0) {
                             
                            } else {
                             
                            }
                        }
                    } else {
                        //在输入框数据为空时,返回true
return true; } } return false; } });

 

 

 



posted @ 2019-11-21 17:59  Egg丶牛皮  阅读(1405)  评论(0编辑  收藏  举报