我有一个通过CursorAdapter填充的ListView。我让我的用户能够改变列表中的数据。例如,用户可以将行标记为未读(数据是消息)。
假设我的用户标记了一行未读。正确的实现是否会将数据库中的行标记为已读,然后重新查询Cursor?
答案 0 :(得分:6)
正确的实现是否会将数据库中的行标记为已读,然后重新查询Cursor?
是的,这是正确的答案。 requery()
将触发CursorAdapter
的自动更新,这将触发ListView
的自动更新,这将触发用户自动微笑。 : - )
<强>更新强>
不推荐使用requery()
方法。现在更好的方法是运行查询以获得新的Cursor
,然后在changeCursor()
上使用swapCursor()
或CursorAdapter
。
答案 1 :(得分:0)
如果光标由ContentProvider返回并且ContentProvider发出正确的通知,CursorAdapter将自动刷新,即无需发出显式的requery()。