Android ListView Adapter notifyDataSetChanged 刷新没有效果
来源:互联网 发布:文字作图软件 编辑:程序博客网 时间:2024/05/19 16:20
1、唠叨
最近发现使用ListView的时候,通过调用Adpater的notifyDataSetChanged方法不能刷新UI数据显示
2、原因分析
1).数据源没有更新,调用notifyDataSetChanged无效。
2).数据源更新了,但是它指向新的引用,调用notifyDataSetChanged无效。
3).数据源更新了,但是adpter没有收到消息通知,无法动态更新列表。
3、解析
List<String> mList=new ArrayList<String>();mList.add("http://fir.im/yzappsec");CusAdapter mAdapter = new CusAdapter(this,mList);listView.setAdapter(mAdater);
此时mAdapter保存了mList的引用
//模拟一个新数据List<String> newList= new ArrayList<String>();newList.add("http://fir.im/holdyou");//赋值给mListmList = newList;//此时调用,发现没有效果mAdapter.notifyDataSetChanged();
当newList赋值给mList的时候 mList指向了一个新的List,但是notifyDataSetChanged方法调用的时候,mAdapter却更新的是保存的引用,因此原引用根本没发生变化,不会更新UI显示
4、代码展示几种解决办法
//方法一mList.add("http://fir.im/holdyou");List<String> newList = new ArrayList<String>();for (String temp : mList) { newList.add(temp); } mList.clear(); mList.addAll(newList); //此时mList中就是2条数据 mAdapter.notifyDataSetChanged();
//方法二//通过向自定义的Adapte中增加更新数据的方法public void setList(List<String> list) { this.mList = list;}//在使用的时候调用mAdapter.setList(mList);mAdapter.notifyDataSetChanged();
0 0
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- Android listView 的适配器adapter.notifyDataSetChanged();刷新没有作用
- Android listView使用Adapter.notifyDataSetChanged()不刷新
- android ListView adapter notifyDataSetChanged刷新先决条件
- Adapter调用notifyDataSetChanged后listview不刷新
- adapter.notifyDataSetChanged()使用没有效果的解决办法。
- android listview用adapter.notifyDataSetChanged()无法刷新每项的图标
- 【Android笔记-5】ListView adapter.notifyDataSetChanged
- android使用notifyDataSetChanged()方法,adapter的数据更新了,但是ListView的内容没有更新;
- android使用notifyDataSetChanged()方法,adapter的数据更新了,但是ListView的内容没有更新;
- android使用notifyDataSetChanged()方法,adapter的数据更新了,但是ListView的内容没有更新
- 使用adapter的notifyDataSetChanged时列表数据没有刷新
- adapter.notifyDataSetChanged没有反应,触摸滑动屏幕才刷新
- adapter调用notifyDataSetChanged刷新没有起作用的原因
- adapter.notifyDataSetChanged()无刷新
- adapter.notifyDataSetChanged()刷新不起作用
- notifyDataSetChanged()刷新ListView(使用JSONArray绑定的Adapter)
- 关于C++程序设计的基础核心之二:继承与派生的基本知识
- Linux网络编程入门 (转载)
- 内存管理笔记(分页,分段,逻辑地址,物理地址与地址转换方式)
- 关于cmd命令行关闭电脑
- (windows下)php-ini文件和开启gd库支持
- Android ListView Adapter notifyDataSetChanged 刷新没有效果
- 目前的几种应用防杀方式
- Javascript 严格模式详解
- cuda之一步一步爬
- Object.defineproperty实现数据和视图的联动
- scrapy爬豆瓣电影
- leetcode--Palindrome Partitioning
- Linux学习笔记(五)--SSH
- 专访曾宪杰:大型网站系统与Java中间件实践