您的位置:首页 > 其它

2015年12月15日 关于引用和适配器的数据更新的一个低级坎

2015-12-15 11:07 169 查看
Android开发中常常用到data_arraylist和adapter进行数据的传递和显示,于是犯了一个低级错误,事后发现真心是个低级错误。

在初始化数据时,new 了adapter,把data_arraylist也穿进去了,以后的更新arraylist和adapter的notifyDataSetChaged()就行了。

由于开始时arraylist是个空的没有数据的,所以第一次数据时我把解析出来的array的直接赋给data_arraylist了,然后adapter的notifyDataSetChaged(),发现不更新数据。

于是debug,发现data_arraylist的数据的确已经变了,数据个数也已经和请求的数据一样了,但是adapter就是不更新。

后来才脑子转过来,data_arraylist被请求后解析的数据array赋值后,data_arraylist已经不是原来的data_arraylist了,而adapter只认识原来的data_arraylist,至于为什么data_arraylist不是原来的data_arraylist了,因为引用到不同的内存位置了。

这个问题真心低级。

最安全的代码方式应该是:

data_arraylist.clear();

data_arraylist.addall(array);

adapter.notifyDataSetChaged();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: