Току-що имам идея:използвайте друг инструмент за зареждане на курсора вътре в елемента от списъка. Така че това ще бъде като двустепенен курсор за зареждане. Ще публикувам резултатите си по-късно.
Редактиране :
Предложената идея трябва да бъде правилният начин за справяне с проблема. Така че моят код е рефакториран по следния начин:
// In the list view activity:
@Override
public void bindView(View view, Context context, Cursor cursor) {
AlbumListItem albumListItem = (AlbumListItem)view;
albumListItem.prepareView(getLoaderManager(), cursor);
}
// AlbumListItem is a class that has a cursor loader to query photos:
public class AlbumListItem extends RelativeLayout implements LoaderManager.LoaderCallbacks<Cursor>{
public void prepareView(LoaderManager loaderManager, Cursor albumCursor){
albumId = albumCursor.getLong(albumCursor.getColumnIndex(AlbumsColumns._ID));
// Other init stuff
loaderManager.initLoader(UNIQUE_LOADER_ID, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Here is the async query part.
return new CursorLoader(context, PhotosColumns.CONTENT_URI, null, PhotosColumns.ALBUM_ID + " = ?", new String[]{Long.toString(albumId)}, null);
}
}