У меня есть ListActivity и использовать CursorLoader, чтобы загрузить данные, которые хранятся в ContentProvider. Я использую собственный класс, расширяющий CursorAdapter для отображения элементов списка. В LoaderCallbacks onLoadFinished я следующее:CursorAdapter.swapCursor не освежает в первый раз
public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) {
cursorAdapter.swapCursor(newCursor);
}
У меня есть пользовательский макет для ListActivity, который включает в себя TextView с android:id="@android:id/empty"
.
Проблема заключается в том, что при первом открытии приложения вызов swapCursor
не обновляет ListView, даже несмотря на то, что в ContentProvider есть данные. Когда я добавляю новый элемент в ListView, список обновляется должным образом. Однако, если я прокомментирую TextView, который отображает простой текст, когда данные недоступны, приложение работает так, как ожидалось. При вызове swapCursor автоматически соответственно обновляет ListView.
Любые мысли о том, почему это происходит, или если есть правильный способ сделать это, поскольку я считаю, что вызов notifyDataSetChanged не будет выполнять работу, поскольку обновление не выполняется в очень конкретном случае?
Вы должны использовать 'changeCursor' если старый курсор больше не используется , – Simas