我正在尝试将 searchView 与 LazyList 一起使用。在我的lazyAdapter 中,我正在更新我的 arraylist ,这工作顺利,但我的 listview 不随 arrayList 更新。这是我的文件管理器方法。我想notifyDataSetChanged不起作用。请帮助我如何刷新我的 ListView ?
public void filter(String charText) {
charText = charText.toLowerCase(Locale.getDefault());
//list.clear();
list = new ArrayList<HashMap<String, String>>();
if (charText.length() == 0) {
list.addAll(arraylist);
}
else
{
for (HashMap<String, String> map : arraylist)
{
if (map.get("radio").toString().toLowerCase(Locale.getDefault()).contains(charText))
{
list.add(map);
}
}
}
notifyDataSetChanged();
}
最佳答案
变量list
在第三行之后保存一个不同的对象。您正在更改这个新的ArrayList
,但适配器仍然记得旧的。而不是
list = new ArrayList<HashMap<String, String>>();
写
list.clear();
然后您可以像以前一样使用相同的对象。
关于java - LazyList 的 listview 无法使用新的 arraylist 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27999071/