У меня есть строки кода в onLoadFinished для моего обратного вызова диспетчера Loader во фрагменте. Проблема с кодом заключается в том, что любимые файлы необходимо отображать в ArrayAdapter, так что по какой-либо причине оно равно нулю, а оператор журнала показывает, что курсор или данные не пустые.Извлечение данных из курсора в onLoadFinished для диспетчера загрузчика
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
Log.i(TAG, "Loader Manager Loading Finished: " + data.getCount());
if (data != null && data.getCount() > 0) {
while (data.moveToNext()) {
favouriteMovies.add(
new Movie(
data.getString(2),
data.getString(3),
data.getString(4),
data.getInt(1),
data.getString(5),
data.getDouble(6),
data.getDouble(7)
));
}
setMovies(favouriteMovies);
hideLoadingProgress();
mAdapter.notifyDataSetChanged();
} else {
showEmptyView(EMPTY_VIEW_TYPE_LOCAL);
hideLoadingProgress();
}
}
Как я могу написать этот код так, что он на самом деле ждет сюда заявление в то время, чтобы закончить перед вызовом метода() в setMovies. Когда я сворачиваю свое приложение на задний план и восстанавливаю его, фильмы перерисовываются, но он не работает в первый раз, когда он вызывается.
'«Проблема с кодом является то, что favoriteMovies необходимо будет отображаться в ArrayAdapter»', да, действительно, это проблема, то не используйте 'ArrayAdapter' при работе с данными, основанными' Cursor', вместо этого используйте «SimpleCursorAdapter» (или любой другой «CursorAdapter») – pskink
Вы правы, но SimpleCursorAdapter не будет использоваться как часть данных, полученных с сервера как json, используя модификацию, которая сопоставляется с моделью, поэтому у меня есть два источника данных , – Po10cio
использовать 'MatrixCursor', тогда, скорее всего, в комбинации с' MergeCursor' – pskink