Android中adapter调用notifyDataSetChanged无效原因总结

本文探讨了ListView在数据更新后未能正确刷新的问题,并提供了解决方案。主要包括:检查数据是否真正更新;清空原有数据列表再添加新数据;或重新创建Adapter。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原因总结:

假设我们的数据源是一个全局的mList

  1. mList没有更新,所以调用notifyDataSetChanged肯定无效
  2. mList更新了,但是mList指向了新的引用,所以调用notifyDataSetChanged无效

我之前就是网络请求完后直接把mList指向了json解析后的得到列表,然后出现了这个问题。

 

解决方法:

  1. 第一种就是检查你的数据有没有更新。
  2. 第二种你可以先清空mList,然后调用addAll()方法添加新的数据。
  3. 你也可以用新的list数据源再new一个新的adapter设置给ListView,但是不推荐这样做了。
  4. 如果你发现你的数据源更新了,但是页面的数据并没有更新,你也可以检查一下是否忘记调用notifyDataSetChanged了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值