Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 上下文已更改,无法使其正常工作_Java_Android_Search_Android Edittext - Fatal编程技术网

Java 上下文已更改,无法使其正常工作

Java 上下文已更改,无法使其正常工作,java,android,search,android-edittext,Java,Android,Search,Android Edittext,嘿,伙计们,我需要我的搜索功能像联系人一样。我正在从服务器检索我的参与者列表,当用户搜索以获得结果时,我会重新生成它。胡佛我只能在他们输入他们的全名时才能让它起作用。。让我给你看看我的代码。我试过很多组合。有什么想法吗?这是儿童饥饿联盟的捐赠应用程序。=] 这只是在for循环中添加每个名称供参考 if (searchQ.contains(child.first_name.toLowerCase()) || searchQ.matches(child.last_name.toLowerCase(

嘿,伙计们,我需要我的搜索功能像联系人一样。我正在从服务器检索我的参与者列表,当用户搜索以获得结果时,我会重新生成它。胡佛我只能在他们输入他们的全名时才能让它起作用。。让我给你看看我的代码。我试过很多组合。有什么想法吗?这是儿童饥饿联盟的捐赠应用程序。=]

这只是在for循环中添加每个名称供参考

if (searchQ.contains(child.first_name.toLowerCase()) 
|| searchQ.matches(child.last_name.toLowerCase()) {

 id = child.id;
 addChildToList(child); 

 }

 if (searchQ.matches("")){
    addChildToList(child);


 }
这是我的textwatcher

public void searchChild(){
    final EditText ET = (EditText) findViewById(R.id.search);


    // create the TextWatcher
    TextWatcher textWatcher = new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {



            // Rebuilds the list
            String searchQ = ET.getText().toString();
             getChildrenListSearch(searchQ);


        }

        @Override
        public void afterTextChanged(Editable editable) {
            // Remove rows that do no match
            TableLayout tl = (TableLayout)findViewById(R.id.childList); 
            tl.removeAllViews();


        }
    };

    //we must add the textWatcher to our EditText
    ET.addTextChangedListener(textWatcher);

    }

另一方面

if (searchQ.contains(child.first_name.toLowerCase()) 
    || searchQ.matches(child.last_name.toLowerCase()) {

     id = child.id;
     addChildToList(child); 

     }
对此

if (child.first_name.toLowerCase().contains(searchQ) 
        || searchQ.matches(child.last_name.toLowerCase()) {

         id = child.id;
         addChildToList(child); 

         }

另一方面

if (searchQ.contains(child.first_name.toLowerCase()) 
    || searchQ.matches(child.last_name.toLowerCase()) {

     id = child.id;
     addChildToList(child); 

     }
对此

if (child.first_name.toLowerCase().contains(searchQ) 
        || searchQ.matches(child.last_name.toLowerCase()) {

         id = child.id;
         addChildToList(child); 

         }

它给了你什么错误?你也明白为什么要这样对吗?您正在查看搜索词是否部分匹配子名称,而不是其他方式。您的cbode工作正常,只是需要切换一些内容,而我没有这样看!我现在明白了!有没有一种方法可以让它在不编写另一个函数的情况下同时进行equalIgnoreCase和contains?只需使用searchQ.toLowerCase()它会给您带来什么错误?你也明白为什么要这样对吗?您正在查看搜索词是否部分匹配子名称,而不是其他方式。您的cbode工作正常,只是需要切换一些内容,而我没有这样看!我现在明白了!有没有一种方法可以让它在不编写另一个函数的情况下同时进行equalIgnoreCase和contains?只需使用searchQ.toLowerCase()