我在应用程序中实现了一个过滤器类来过滤ListView
。现在,我想在用户输入且与过滤器不匹配时在expressionlist
中添加ListView
的所有项目,而不是在空白处显示ListView
。
我怎样才能做到这一点?我需要一些帮助。
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
expressionlist.clear();
if (charText.length() == 0) {
expressionlist.addAll(arraylist);
} else {
for (Expression wp : arraylist) {
if (wp.getWord().toLowerCase(Locale.getDefault())
.contains(charText)) {
expressionlist.add(wp);
}
}
}
notifyDataSetChanged();
}
}
最佳答案
在按搜索关键字过滤之后。您可以检查结果数组的大小。
如果为空,则添加要显示的数据,然后notifyDataSetChanged
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
expressionlist.clear();
if (charText.length() == 0) {
...
} else {
...
}
if(expressionlist.size() == 0){
// add all items of expressionlist
}
notifyDataSetChanged();
}
}