gpt4 book ai didi

数据库更改时,Android SimpleCursorAdapter 不会更新

转载 作者:IT王子 更新时间:2023-10-28 23:53:26 26 4
gpt4 key购买 nike

我有一个由数据库 Cursor 通过 SimpleCursorAdapter 支持的 Android ListActivity

单击项目时,数据库中对应行中的标志字段被切换,列表中的 View 需要更新。

问题是,当更新的 View 离开屏幕并被回收时,当它返回 View 时,旧值会显示在 View 上。每当重绘 thr 列表(方向更改等)时,都会发生同样的事情。

我使用 notifydatasetchanged() 来刷新游标适配器,但是好像没有效果。

我应该如何更新数据库以更新光标?

最佳答案

Cursor 上调用 requery() 当您更改要反射(reflect)在 Cursor 中的数据库中的数据(或 Cursor 中的内容时code>Cursor 填充,就像通过 CursorAdapterListView)。

Cursor 类似于 ODBC 客户端游标——它包含由查询结果表示的所有数据。因此,仅仅因为您更改了数据库中的数据,Cursor 不会知道这些更改,除非您通过 requery() 刷新它。


更新:这整个问题和答案集都应该因年老而被删除,但这显然是不可能的。任何寻求 Android 答案的人都应该记住,Android 是一个瞬息万变的目标,2009 年的答案通常比新的答案更糟糕。

当前的解决方案是获取一个新的 Cursor 并在 CursorAdapter< 上使用 changeCursor()swapCursor()/code> 影响数据更改。

关于数据库更改时,Android SimpleCursorAdapter 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com