Я использую очень простой CursorLoader с ImageDownloader. ImageDownloader работает и все, кроме CursorLoader отделки, а затем ImageDownloader начинает свою работу по загрузке изображений, но GridView не обновляется с загруженными изображениями ..Android Combine ImageDownload with CursorLoader
В моей ListFragment я следующий onActivityCreated метода :
@Override
public void onActivityCreated(Bundle savedInstanceState) {
Log.d(TAG, "onActivityCreated");
super.onActivityCreated(savedInstanceState);
cursorAdapter = new OURSVPImageAdapter(getActivity(), null);
// set the adapter on the gridview
mGridView.setAdapter(cursorAdapter);
// load the data
getActivity().getSupportLoaderManager().initLoader(2, null, this);
}
Мой CursorLoader выглядит следующим образом:
public static final class PhotoCursorLoader extends SimpleCursorLoader {
Context mContext;
public PhotoCursorLoader(Context context) {
super(context);
Log.d("PhotoCursorLoader", "Constructor");
mContext = context;
}
@Override
public Cursor loadInBackground() {
Log.d("PhotoCursorLoader", "loadInBackground");
PhotosDataSource datasource = new PhotosDataSource(mContext);
# STEP 1
return datasource.getAllPhotos(((EventActivity) mContext).getEventId());
}
}
в строке # STEP 1, который извлекает все фотографии просто метод, который возвращает курсор, как показано здесь:
public Cursor getAllPhotos(long event_id) {
Log.d(TAG, "getAllPhotos");
Cursor mCursor = getWritableDatabase().query(true, TABLE_NAME, COLUMNS_PHOTOS, DatabaseConstants.KEY_EVENT_ID + "=" + event_id,
null, null, null, null, null);
return mCursor;
}
Таким образом, это будучи CursorLoader для ListFragment, она принимает его завершенным, когда что курсор возвращается, который является правильным , С моей точки зрения метод setAdapter() - это то, что на самом деле вызовет метод getView.
Проблема, с которой я столкнулся, заключается в том, что все, кажется, работает нормально, мой выход в журнал выводит правильные URL-адреса для изображений, точки останова, отображающие законные данные, Проблема заключается в том, что мой сетчатый просмотр никогда не обновляется с изображениями, которые извлекает ImageDownloader.
EDIT Это SimpleCursorLoader
я использую: https://gist.github.com/1217628
Я думаю, что одно из главных отличий в том, к чему вы привыкли, и что делает мой код, это то, что я использую ActionbarSherlock .., который использует библиотеку поддержки .. @Overrides и методы недоступны иногда .. как .. Мне нужно использовать getSupportLoaderManager NOT getLoaderManager .. – Rabbott
Он работает так же с 'ActionBarSherlock'. Пока вы согласны в использовании той же самой реализации «LoaderManager» (будь то из библиотеки поддержки или официального Android SDK), моя точка по-прежнему сохраняется. Тем не менее я изменил 'getLoaderManager' на' getSupportLoaderManager' в моем ответе. –
* Жизненные циклы Activity и Fragment не синхронизируются друг с другом * и текст с сайта разработчика Android: * Жизненный цикл активности, в котором живет фрагмент, напрямую влияет на жизненный цикл фрагмента, так что каждый обратный вызов жизненного цикла для активности приводит к аналогичному обратному вызову для каждого фрагмента. Например, когда активность получает onPause(), каждый фрагмент в активности получает onPause(). *? – Luksprog