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