列表数据更改时更新Android ListActivity?
Posted
技术标签:
【中文标题】列表数据更改时更新Android ListActivity?【英文标题】:Update Android ListActivity when list data changes? 【发布时间】:2010-12-05 01:24:27 【问题描述】:我想知道当我更改/添加数据时如何刷新ListActivity
。
我首先认为ListAdapter
会知道列表何时更改,但是当我将元素添加到列表中时,ListActivity
没有更新,只有当我关闭 ListActivity 并再次重新打开它时,我才会看到发生变化。
所以我搜索了任何方法,例如:update(), refesh()
或类似的东西,但没有。
好像没搞懂这个概念,谁能帮帮我?
【问题讨论】:
【参考方案1】:如果您使用ArrayAdapter
,请通过适配器操作列表的内容——不要接触底层列表。 ArrayAdapter
上有add()
、insert()
和remove()
方法。
如果您使用的是CursorAdapter
,请在Cursor
上运行requery()
。
【讨论】:
我使用 ArrayAdapter 并更新记录。如何刷新 ListView? 当然,不再推荐这样做,因为requery()
是在 UI 线程上执行的。如果您偶然发现这篇文章,您应该考虑改用Loader
。【参考方案2】:
试试 ArrayAdapter:notifyDataSetChangedGoogle docs link
【讨论】:
请注意,如果没有任何观察者附加到适配器,这将不起作用。【参考方案3】:也许你应该这样做setListAdapter(listAdapter);
【讨论】:
以上是关于列表数据更改时更新Android ListActivity?的主要内容,如果未能解决你的问题,请参考以下文章
更改实时数据时,Android Composelazycolumn 不更新
数据库更改时,Android SimpleCursorAdapter 不会更新
更改数组列表时,带有 ArrayList 和 ListView 的 Android 数组适配器不会更新
DiffUtil 重绘 ListAdapter Kotlin 中的所有项目