开发者

Proper implementation of changing ListView data with CursorAdapter

I have a ListView populated via a CursorAdapter. I give my user 开发者_开发百科the ability to alter the data in the list. For example, the user can mark a row as being unread (the data are messages).

Suppose my user marked a row unread. Would a proper implementation mark the row in the database as read and then requery the Cursor?


Would a proper implementation mark the row in the database as read and then requery the Cursor?

Yes, that's the right answer. The requery() will trigger an automatic update of your CursorAdapter, which will trigger an automatic update of the ListView, which will trigger an automatic smile from the user. :-)

UPDATE

The requery() method is deprecated. A better approach nowadays is to run a query to get a fresh Cursor, then use changeCursor() or swapCursor() on your CursorAdapter.


If the cursor is back by a ContentProvider and the ContentProvider issues correct notifications, the CursorAdapter will automatically refresh itself i.e. without the need to issue an explicit requery().

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜