軟鍵盤搜索鍵監聽;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; } });

 

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM