ListView 改变数据源后 notifyDateSetChanged不起作用
来源:互联网 发布:网络上载速度慢 编辑:程序博客网 时间:2024/06/05 15:23
在使用notifyDataSetChanged更新ListView的数据源时,要注意:
ListView使用的数据源是来自ArrayList。通常我们的做法是创建一个已经有我们想要提供给ListView的数据的ArrayList,例如:
- ArrayList<Integer> list = new ArrayList<Interger>;
- list.add(1);
- ArrayList<Integer> newlist = new ArrayList<Interger>;
- list.add(2);
这个时候,newlist和list指向不同的堆内存,如果我们直接用list = newlist来把newlist的数据交给list,实际上仅仅把list的指向改变了。
此时,我们再调用notifyDataSetChanged这个方法来通知listview更新数据就起不了任何作用了,原因很简单,就是list的指向已经改变,而调用notifyDataSetChanged会去检查原来list指向的数据是否变化,但是这时的list已经不是原来的list了,所以它无法判断,只能不作出响应了。那么,这个问题的解决方法是直接在原来的list上面更改数据,可以使用下面的代码来操作:
- list.clear();
- list.addAll(newlist);
- adapter.notifyDataSetChanged();
0 0
- ListView 改变数据源后 notifyDateSetChanged不起作用
- ListView 改变数据源后 notifyDateSetChanged不起作用
- Android ListView改变数据源
- ReactNative ListView改变数据源,列表不刷新
- 自定义adapter 改变数据后调用notifyDataSetChanged() 不起作用的解决方法
- 解决jquery动态改变a标签的onclick后不起作用
- Android ListView 添加 HeaderView后,HeaderView的布局不起作用
- spring 动态数据源不起作用
- listView选中后item背景改变
- 【listview&checkbox】listview中有checkbox 滑动后状态改变
- WPF中ListView绑定数据源后居中显示
- ListView中删掉某个item时出现整个ListView都看不见,但是数据源有改变
- DataGridView绑定数据源后,在界面上删除行,数据源没有改变
- ListView.setEmptyView不起作用
- ListView设置setSelection不起作用
- listview notifydatasetchanged 不起作用
- ListView 有时候 notifyDataSetChanged 不起作用
- ListView setselection()不起作用
- 二分图匹配算法
- 数据位数
- HttpServletRequest
- Delphi 远程连接Mysql
- 网站后台php 验证前台post 方法传递来的数据
- ListView 改变数据源后 notifyDateSetChanged不起作用
- 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation .
- 仪表数据通过RS485连接电脑采集数据
- 14年阿里-软件研发工程师
- 在Ubuntu Server下搭建LAMP环境
- Swift闭包的简化写法——强大的Swift闭包
- android.view.InflateException
- 有关事件绑定
- [概念]iOS5 strong, weak, unsafe_unretained ARC