notifyDataSetChanged的一个坑

notifyDataSetChanged是在adapter的数据源发生变化时,在程序中主动通知adapter更新数据源,这里存在一个问题:当数据源的引用指向别的list时,notifyDataSetChanged是无效的,也就是说notifyDataSetChanged只识别最原始的数据源,也就是集合变量第一次指向的那个list对象,下面用代码说明:

public void handleMessage(Message msg) {
				switch (msg.what) {
				//数据解析成功200
				case Config.JSON_EXACT:
					List<PhotoAlbumBean> llist= (List<PhotoAlbumBean>) msg.obj;
					list.addAll(llist);
					adapter.notifyDataSetChanged();
					break;
				//数据解析失败500
				case Config.JSON_ERROR:
					Toast.makeText(ClassAlbumActivity.this, Config.JSON_FAIL, Toast.LENGTH_SHORT).show();
					break;

可以清楚的看到,handler拿到list对象后不是直接赋给list引用,而是通过list的addAll方法,这样保证list始终是引用最原始的那个list对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值