adapter调用notifyDataSetChanged刷新没有起作用的原因
来源:互联网 发布:淘宝模块配色代码 编辑:程序博客网 时间:2024/06/05 07:22
listview列表中的数据更新后刷新是使用listview的基础,但是有时候在更新数据之后使用notifyDataSetChanged方法刷新页面的时候就出现了没反应的现象。
原因是adapter会监听一个数据源,这个数据源在一开始的时候会指向一个内存,当指向此内存的数据源发生变化的时候adapter调用notifyDataSetChanged方法就可以进行刷新,但是问题就出在这里
数据源往往会被移位替代。
怎么理解呢,就是一开始我们new一个list来作为数据源,这个数据源一开始是没有数据的,我们在处理数据的时候会向list添加数据,但是添加往往会被替代为移位指向另外一块内存,怎么理解呢
在获取完数据的时候我们往往会新建一个list来放置数据,如下
List<Object> newList = new ArrayList<Object>(){};
此时我们会习惯性的将两个list等价
list = newList;
这时就是问题出现的时候了,我们数据源监听的是list的内存地址,但是通过上面的等价,就将newList的内存赋给了list,list的内存地址就发生改变了,但是adapter监听的内存地址却没有变,那个地址中没有发生变化,所以调用notifyDataSetChanged就没有任何的效果。
解决的办法很简单,只需要在list中添加newList的数据,而不是换内存地址的指向。
list.addAll(newList);
1 0
- adapter调用notifyDataSetChanged刷新没有起作用的原因
- adapter调用notifyDataSetChanged 无效的原因
- Adapter.notifyDataSetChanged()数据改变却不刷新的原因
- 使用adapter的notifyDataSetChanged时列表数据没有刷新
- Android listView 的适配器adapter.notifyDataSetChanged();刷新没有作用
- 关于ListView中adapter调用notifyDataSetChanged无效的原因
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- ListView中adapter调用notifyDataSetChanged无效的原因
- 关于ListView中adapter调用notifyDataSetChanged失效的原因总结
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- 关于调用adapter.notifydatasetchanged()没有效果的问题
- rewrite 没有起作用的原因
- Adapter调用notifyDataSetChanged后listview不刷新
- Android adapter.notifyDataSetChanged失效的可能原因
- adapter.notifyDataSetChanged()使用没有效果的解决办法。
- adapter.notifyDataSetChanged没有反应,触摸滑动屏幕才刷新
- adapter.notifyDataSetChanged()无刷新
- 超强JSP防SQL注入攻击
- C语言小结4
- 图片的三级缓存
- 【腾讯Bugly干货分享】微信热补丁Tinker的实践演进之路
- Android activity跳转到另一个activity的指定fragment页面
- adapter调用notifyDataSetChanged刷新没有起作用的原因
- webapi使用System.Web.Http.Cors配置跨域访问的几点注意事项
- LeetCode-Median of sorted array(2)
- POJ Snowflake Snow Snowflakes 3349 (哈希)
- NYOJ 1239 引水工程 【MST 变形】
- 执行计划(是否使用索引)
- 51Nod 1091 线段的重叠 (贪心)
- sdut oj3362 数据结构实验之图论六:村村通公路(最小生成树)
- 数据结构:红黑树解析