Android ListView 适配器 notifyDataSetInvalidated() 与 notifyDataSetChanged()
Posted
技术标签:
【中文标题】Android ListView 适配器 notifyDataSetInvalidated() 与 notifyDataSetChanged()【英文标题】:Android ListView Adapter notifyDataSetInvalidated() vs notifyDataSetChanged() 【发布时间】:2011-09-16 19:51:08 【问题描述】:有什么区别? android 文档没有关于 notifyDataSetInvalidated() 的描述。我在想也许您调用该函数来通知所有注册的侦听器,但使用 notifyDataSetChanged() 不通知他们?
【问题讨论】:
【参考方案1】:Changed 表示数据集发生了变化。更新了单个项目,或者添加或删除了项目。无效意味着数据源不再可用。
【讨论】:
为了扩展这一点,来自 Romain Guy 的回复:“notifyDataSetInvalidated() 意味着适配器内的数据不再有效。这将导致 ListView 停止填充。应该很少有任何理由使用它。” 为了进一步解释 @Glendon 的评论,this Google groups thread 和 this one 包含类似的问题,由一位名叫 Romain Guy 的 Android 框架工程师回答。 如果有人对调用这些方法时以编程方式在幕后发生的事情感兴趣,请参阅我的回答 here 这些方法的文档已针对即将发布的版本进行了扩展。以上是关于Android ListView 适配器 notifyDataSetInvalidated() 与 notifyDataSetChanged()的主要内容,如果未能解决你的问题,请参考以下文章
带有arraylist的listview,android中的简单适配器