java - LazyList 的 listview 无法使用新的 arraylist 刷新

标签 java android listview searchview lazylist

我正在尝试将 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/

相关文章:

java generics - Comparable<capture#1-of ?> 类型中的方法compareTo(capture#1-of ?) 不适用于参数

java - JLabel 垂直对齐不按预期工作

android - Android RecyclerView 中的模型、 View 和 Controller 是什么?

c# - 将水平 ListView 限制在屏幕内的空间?

java - 在滚动的可扩展 ListView 中重复并重新定位 'children'

java - 如何使用两个日期之间的数据从mysql加载数据

java - 在 Appfog 上部署简单的 Java Web 应用程序

java - 读取 Cipher 生成的文件时的 StreamCorruptedExecution

java - Android:在我的应用程序拍摄的照片上打印日期和时间

android - 如何在 SyncAdapter 完成 Sync 后刷新 Android ListView