Android中Adapter的notifyDataSetInvalidated()和notifyDataSetChanged()的区别!
2015-06-08 18:14
363 查看
notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容。
该方法内部实现了在每个观察者上面调用onChanged事件。每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。
public void notifyDataSetInvalidated ()
public void notifyDataSetInvalidated ()
该方法内部实现了在每个观察者上面调用onInvalidated事件。每当发现数据集监控有改变的情况,比如该数据集不再有效,就会调用此方法。
今天用到Listview刷新功能,之前解决都是给Listview重新负上adapter这样listview就滚动到第一条了,但是这样会有些耗内存,程序写法也不美观。理论上是这样的,需要实验一下,重要的是一下两句话!
notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域
注:必须在UI主线程中调用执行
该方法内部实现了在每个观察者上面调用onChanged事件。每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。
public void notifyDataSetInvalidated ()
public void notifyDataSetInvalidated ()
该方法内部实现了在每个观察者上面调用onInvalidated事件。每当发现数据集监控有改变的情况,比如该数据集不再有效,就会调用此方法。
今天用到Listview刷新功能,之前解决都是给Listview重新负上adapter这样listview就滚动到第一条了,但是这样会有些耗内存,程序写法也不美观。理论上是这样的,需要实验一下,重要的是一下两句话!
notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域
注:必须在UI主线程中调用执行
相关文章推荐
- Android ScrollView简单自动滚动问题总结
- Android Studio项目迁移小结
- Android 定位详解(显示自己想要的定位信息)
- Android 环境变量配置(Mac)
- Android 环境变量配置(Mac)
- Android 线性布局(LinearLayout)相关官方文档 - 指南部分
- 有关Android 平台解析XML
- android Intent Flags详解
- Android_Activity详解
- Android中通过反射获取资源Id
- 修改AndroidStudio中的Logcat中的默认设置
- Android dp和sp的用法汇总
- xUtils在开发过程中DbUtils的使用(save,update方法)
- 异步加载AsyncTask
- 浅谈android中的目录结构
- 本人初学android,希望大神帮忙指点学习路线,现在好迷茫
- Android 调用本地通讯录,广播接收
- android EditText中的inputType
- Android自定义attr和style
- Android学习之ION memory manager