zoukankan      html  css  js  c++  java
  • 软键盘搜索键监听;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; } });


  • 相关阅读:
    size_t类型
    sudo 安装 ——Debian 6
    Ubuntu10.10 上海交大及其他教育网更新源
    Linux 命令解决小问题
    VMware Player tools for linux 安装
    内核总结之内存管理api (转)
    volatile的使用
    二叉树层次遍历队列实现
    Ubuntu 11.04 下OpenCV安装
    Ubuntu 添加教育网更新源【转】
  • 原文地址:https://www.cnblogs.com/niupi/p/11907208.html
Copyright © 2011-2022 走看看