Правильная реализация изменения данных ListView с помощью CursorAdapter - PullRequest
4 голосов
/ 04 сентября 2010

У меня есть ListView, заполненный через CursorAdapter.Я даю своему пользователю возможность изменять данные в списке.Например, пользователь может пометить строку как непрочитанную (данные являются сообщениями).

Предположим, мой пользователь пометил строку как непрочитанную.Будет ли правильная реализация помечать строку в базе данных как прочитанную, а затем запрашивать курсор?

Ответы [ 2 ]

6 голосов
/ 04 сентября 2010

Будет ли правильная реализация помечать строку в базе данных как прочитанную, а затем запрашивать курсор?

Да, это правильный ответ. requery() вызовет автоматическое обновление вашего CursorAdapter, что приведет к автоматическому обновлению ListView, что вызовет автоматическую улыбку пользователя. : -)

UPDATE

Метод requery() устарел. В настоящее время лучшим подходом является запуск запроса для получения нового Cursor, а затем использование changeCursor() или swapCursor() на вашем CursorAdapter.

0 голосов
/ 07 марта 2011

Если курсор возвращается с помощью ContentProvider и ContentProvider выдает правильные уведомления, CursorAdapter автоматически обновится, т. Е. Без необходимости явного запроса ().

...