我在我的应用程序中实现了一个过滤器类来过滤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();
}
}
答案 0 :(得分:1)
按搜索关键字过滤后。您可以检查结果数组的大小
如果为空,请添加要显示的数据,然后添加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();
}
}
答案 1 :(得分:0)
public void filterData(String strSearch) {
strSearch = strSearch.toLowerCase();
arrList.clear();
if (strSearch.isEmpty()) {
arrList.add()//add your main arrmainlist
} else {
String usernameArr[] = strSearch.split(" ");
for (String query : usernameArr) {
for (upto your arrlist size) {
like if (data.getQues().toLowerCase().contains(keyWord.toLowerCase())
|| data.getAns().toLowerCase().contains(keyWord.toLowerCase())) {
if (!tempList.contains(data)) {
tempList.add(data);
}
if (newList.size() > 0) {
check your temp list already in your arraylist/hashmap.
然后添加到主arraylist / hashmap } }
}
}
notifyDataSetChanged();