Я использую пользовательский RecyclerView.Adapter
, чтобы показать элементы списка.Я использую LoaderManager.LoaderCallbacks<Cursor>
для извлечения данных из базы данных, а в onLoadFinished()
я использую пользовательский метод для извлечения данных из курсора и сохранения их в пользовательском ArrayList по одному, используя while(cursor.moveToNext())
.Список успешно загружен.Но при повороте экрана список исчезает.
Когда я отлаживал код, я узнал, что onLoadFinished()
вызывается при повороте экрана, но цикл while не работает, даже если курсор не равен нулю, а курсорколичество больше 0.
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
loadAndroidFlavours(cursor);
mCursor = cursor;
invalidateOptionsMenu();
}
private void loadAndroidFlavours(Cursor cursor) {
if (cursor.getCount() != 0) {
while (cursor.moveToNext()) {
int columnIndexID = cursor.getColumnIndex(AndroidFlavourEntry._ID);
int columnIndexFlavour = cursor.getColumnIndex(AndroidFlavourEntry.COLUMN_FLAVOUR);
int columnIndexVersion = cursor.getColumnIndex(AndroidFlavourEntry.COLUMN_VERSION);
int ID = cursor.getInt(columnIndexID);
String flavour = cursor.getString(columnIndexFlavour);
String version = cursor.getString(columnIndexVersion);
mFavoritesList.add(new AndroidFlavour(ID, flavour, version));
}
loadAndroidFlavours();
} else {
hideList();
}
}
Я застрял.Пожалуйста, помогите с объяснением.Привет!