Wypełnij widżety kursorem w onLoadFinished ()
Chcę wiedzieć, jak korzystać zCursorLoader
wypełnić widżety na ekranie. Wszystkie przykłady online służą tylko do używania adaptera i to działa świetnie. To, czego potrzebuję, to niezawodny sposób na aktualizację widoków na moim ekranie z kursora i wątku interfejsu użytkownika, a czasem nawet z powodu awariiStaleDataException
lub kursor zostanie nagle wyłączony. Oto moje obecne podejście, ale nadal otrzymuję raporty o awariach od użytkowników.
<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>
Jednym z rozwiązań byłoby pobranie wszystkich pól kursora bezpośrednio wewnątrz onLoadFinished i przekazanie ich wszystkim do obsługi, aby wypełnić widżety w wątku interfejsu użytkownika. Ale to jest brzydkie, ponieważ mogę mieć wiele wartości w kursorze. Bardzo chciałbym znaleźć niezawodny, bezawaryjny sposób radzenia sobie z tym wszystkim.