使用adapter的notifyDataSetChanged时列表数据没有刷新

今天写一个列表的时候遇到一个问题,就是明明调用了notifyDataSetChanged,但是列表却没有刷新,开始以为是list数据的问题,结果排查了很久发现,list中的数据也是对的,notifyDataSetChanged方法也确实调用了,但是就是没有更新。最后万般无奈之下,突然意识到自己犯了一个大错,就是原来我想实现的功能是,更新数据之前,把list中的数据清空,但是我用的是直接把list=null,然后又重新new了一个list出来,我以为一句代码很方便,但是忽略了一点,list=null;以后,再重新new出来的对象就和原来的不一样了,不再是原来的那个数据块的地址了,而notifyDataSetChanged方法是通过反射查看view中使用的数据是否发生了改变,它所查看的正是那个数据块。

然而那个数据块已经不存在了,新new出来的数据块又不是它所检测的,所以自然不会更新列表了,这里解决的办法也很简单,就是在做这块的时候一定要保证自己在整个过程中的list没有发生变化就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值