您的位置:首页 > 移动开发 > Android开发

notifyDataSetChanged的一个坑

2016-01-07 10:40 627 查看
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对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android