在使用应用程序一段时间后,我意识到我使用
adapter.clear()
and
arraylist.clear()
我可以看到两者都工作正常,我想知道两者之间的区别!
在我开始之前调用这两个函数并使用来自我的服务器的信息更新我的列表的asyncTask!
答案 0 :(得分:1)
您不应该直接清除ArrayList
。 ArrayAdapter
绝对不能保证它保留给它的相同引用列表。实际上,当您使用它的过滤器执行搜索时它会发生变化。哪会使arrayList.clear()
失败。
经验法则,如果您需要改变或检索关联数据...直接从适配器执行此操作。不是你用来构建它的列表。
答案 1 :(得分:0)
Adapter =它包含diff视图的副本,数组
aaraylist保存我们想要在视图中显示的数据。
ex:arraylist<HashMap<String,String>> ah= new ArrayList<HashMap<String,String>>();
上面的列表包含hashmap
如果我清除了arraylist,将没有数据显示在listview或gridview上,所以它将是空的
如果我清除适配器,它将破坏数组和视图的副本,因此输出将是相同的