Заполните виджеты из курсора в onLoadFinished ()
Я хочу знать, как использоватьCursorLoader
заполнить виджеты на экране. Все примеры в сети только для использования адаптера, и это прекрасно работает. Что мне нужно, так это надежный способ обновления представлений на моем экране из курсора и потока пользовательского интерфейса, без периодического сбоя из-заStaleDataException
или курсор был деактивирован внезапно. Вот мой текущий подход, но я все еще получаю некоторые отчеты о сбоях от пользователей.
<code>@Override public Loader<Cursor> onCreateLoader(int id, Bundle arg1) { CursorLoader loader = null; switch (id) { case LOADER_ID_DATA: loader = new CursorLoader(...); break; } return loader; } @Override public void onLoadFinished(Loader<Cursor> loader, final Cursor cursor) { handler.post(new Runnable() { @Override public void run() { if (getActivity() == null) return; updateView(cursor); } }); } @Override public void onLoaderReset(Loader<Cursor> arg0) { } </code>
Одним из решений было бы получить все поля курсора непосредственно внутри onLoadFinished и передать их все обработчику для заполнения виджетов в потоке пользовательского интерфейса. Но это ужасно, потому что у меня может быть много значений в курсоре. Я хотел бы найти надежный безотказный способ справиться со всем этим.