2013-09-08 2 views
0

У меня есть способ отображения названия и даты заметки из базы данных. Однако метод startManagingCursor устарел. Есть ли способ переписать его с помощью загрузчика курсора?переписывание метода использования курсора loader

private void fillData() { 
    // Get all of the notes from the database and create the item list 
    Cursor notesCursor = mDbHelper.fetchAllNotes(); 
    startManagingCursor(notesCursor); 


    String[] from = new String[] { NotesDbAdapter.KEY_TITLE ,NotesDbAdapter.KEY_DATE}; 
    int[] to = new int[] { R.id.text1 ,R.id.date_row}; 

    // Now create an array adapter and set it to display using our row 
    SimpleCursorAdapter notes = 
     new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to); 
    setListAdapter(notes); 
} 
+0

Вы посмотрели http://stackoverflow.com/questions/10145735/how-to-properly-transition-from-startmanagingcursor-to-cursorloader – aquaraga

ответ

0

Регулярное CursorLoader основана на ContentProvider Андроида - так что если вы не используете его, вы должны написать свой собственный Loader. Вот один из способов вы можете сделать это:

https://github.com/commonsguy/cwac-loaderex/blob/master/src/com/commonsware/cwac/loaderex/acl/AbstractCursorLoader.java

С этого момента это довольно прямо вперед. Ваша активность/фрагмент может быть обратным вызовом для LoaderManager - ему потребуется реализовать интерфейс LoaderCallbacks.

Вместо выполнения запроса используйте getLoaderManager(). InitLoader (это, null, LOADER_ID), чтобы инициализировать загрузку данных. Вот пример: http://developer.android.com/reference/android/app/LoaderManager.html

Теперь данные будут в обратном вызове onLoadFinished(). Если вы все сделали правильно, вы получите свой курсор. Теперь просто используйте курсор для заполнения списка.

Смежные вопросы