Android ListView适配器notifyDataSetInvalidated()vs notifyDataSetChanged()

Spi*_*idy 63 android android-listview android-adapter

有什么不同?android文档没有notifyDataSetInvalidated()的描述.我想也许您调用该函数来通知所有已注册的侦听器,但是使用notifyDataSetChanged()来通知它们?

ada*_*amp 82

更改意味着数据集已更改.已更新单个项目,或已添加或删除项目.无效表示数据源不再可用.

  • 为了扩展这一点,Romain Guy的回复:"notifyDataSetInvalidated()意味着适配器内的数据不再有效.这将导致ListView停止填充.很少有任何理由使用它." (25认同)
  • 如果有人对调用这些方法时在幕后以编程方式发生的事情感兴趣,请参阅我的回答[here](http://stackoverflow.com/questions/3219779/android-what-does-adapter-notifydatasetinvalidated-do/7734032#7734032 ) (6认同)
  • 要进一步解释@Glendon的评论,[此Google分组主题](https://groups.google.com/d/topic/android-developers/1tsRQczqbt0/discussion)和[this one](https://groups.google. com/d/topic/android-developers/WJshF8aZeUY/discussion)包含类似的问题,由一位名为Romain Guy的Android框架工程师回答. (2认同)