android listview删除刷新,如何刷新Android ListView?

添加/删除动态数据后如何刷新Android ListView ?

#1楼

请忽略所有对此问题的invalidate() , invalidateViews() , requestLayout() ,...答案。

故障排除

如果调用notifyDataSetChanged()不起作用,则所有布局方法也无济于事。 相信我ListView已正确更新。 如果找不到差异,则需要检查适配器中数据的来源。

如果这只是一个集合,则您要保留在内存中,然后在调用notifyDataSetChanged()之前检查是否已从集合中实际删除或添加了项目。

如果您使用的是数据库或服务后端,则必须在调用notifyDataSetChanged()之前调用该方法以再次检索信息(或操作内存中的数据notifyDataSetChanged() 。

事情是, notifyDataSetChanged仅在数据集已更改的情况下有效。 因此,如果找不到更改,那就可以在这里查找。 如果需要调试。

ArrayAdapter与BaseAdapter

我确实发现,使用适配器可以管理集合,就像使用BaseAdapter更好。 某些适配器(例如ArrayAdapter)已经管理了自己的集合,这使得更难到达正确的集合进行更新。 在大多数情况下,这实际上只是不必要的额外难度。

UI线程

确实,这必须从UI线程中调用。 其他答案包含有关如何实现此目的的示例。 但是,仅当您正在UI线程外部处理此信息时才需要这样做。 那是来自服务或非UI线程的。 在简单的情况下,您将通过单击按钮或其他活动/片段来更新数据。 因此仍在UI线程内。 无需始终将该runOnUiTrhead弹出。

快速示例项目<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值