使用CursorAdapter正确实现更改ListView数据

时间:2010-09-03 20:27:16

标签: android listview cursor listactivity

我有一个通过CursorAdapter填充的ListView。我让我的用户能够改变列表中的数据。例如,用户可以将行标记为未读(数据是消息)。

假设我的用户标记了一行未读。正确的实现是否会将数据库中的行标记为已读,然后重新查询Cursor?

2 个答案:

答案 0 :(得分:6)

  

正确的实现是否会将数据库中的行标记为已读,然后重新查询Cursor?

是的,这是正确的答案。 requery()将触发CursorAdapter的自动更新,这将触发ListView的自动更新,这将触发用户自动微笑。 : - )

<强>更新

不推荐使用requery()方法。现在更好的方法是运行查询以获得新的Cursor,然后在changeCursor()上使用swapCursor()CursorAdapter

答案 1 :(得分:0)

如果光标由ContentProvider返回并且ContentProvider发出正确的通知,CursorAdapter将自动刷新,即无需发出显式的requery()。