0

У меня есть активность, которая реализует класс курсора LoaderManager.LoaderCallbacks. У меня есть эта функция, которая получает данные от SQlite.Получить курсор из SimpleCursorAdapter

@Override 
public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
    switch (id) { 
     case ITEM_LOADER_ID: 
      // The uri points to Item, which is the items in the inventory 
      Uri uri = InventoryContract.Item.contentUriWithAccount(mCloverAccount); 
      String sortOrder = InventoryContract.Item.NAME; 

      String selection = ""; 

      try { 

       selection = InventoryContract.ItemColumns.CODE; 

      catch (Exception e){ 
       Log.e("Error",e.toString()); 
      } 
      return new CursorLoader(HomeActivity.this, uri, null, selection, null, sortOrder); 
     default: 
      // An invalid id was passed in 
    } 
    throw new IllegalArgumentException("Unknown Loader ID"); 
} 

У меня есть SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(
      this, 
      android.R.layout.simple_list_item_2, 
      null, 
      new String[]{InventoryContract.Item.NAME, InventoryContract.Item.PRICE_TYPE}, 
      new int[]{android.R.id.text1, android.R.id.text2}, 
      0 
    ); 

Это функциональное и получать данные, но я хочу, чтобы получить курсор, чтобы я мог восстановить всю информацию и хранить в список для выполнения поста. Я ищу все соответствующие ссылки для получения курсора и нашел код, который:

Cursor c = adapter.getCursor(); 
    try { 

     int i = 0; 
     while (c.moveToNext()){ 
      Log.e("In Log Cursor",c.getString(i)); 
      i++; 
     } 
     c.close(); 
    } 
    catch (Exception e){ 
     Log.e("Error",e.toString()); 
    }    

, но она становится нулевым курсором. Я хочу получить эти данные и сделать пользовательский адаптер для дальнейших манипуляций. Пожалуйста, помогите мне найти решение или любой другой способ получить эти данные из SQlite и сохранить в виде списка, с помощью которого я могу использовать его после получения и установить его в RecyclerView. Заранее спасибо.

+0

вам не нужен любой пользовательский адаптер, просто используйте 'SimpleCursorAdapter' и если вы хотите, чтобы показать свои данные на' RecyclerView' использовать [это] (https: // суть. github.com/Shywim/127f207e7248fe48400b) адаптер вместо – pskink

+0

CursorRecyclerAdapter (курсор курсор) Мне нужно передать курсор в эту функцию, но откуда это будет курсор? – Awais

+0

см. Http://www.grokkingandroid.com/using-loaders-in-android/#how_to_deal_with_cursoradapters – pskink

ответ

0

Я думаю, что это старый пост, но я думал, что он может помочь кому-то. вы можете реализовать его шаги в onloadFinshed методы

public void onLoadFinished(Loader<Cursor> loader, Cursor data) { 
    adapter.swapCursor(data); 
     /* 
     data.moveToFirst(); 

    if (data.getCount() != 0) { 
     for (int i = 0; i < data.getCount(); i++) { 
      String s = data.getString(data.getColumnIndex(column no)); 
      data.moveToNext(); 
     } 
    } 


}