Вы передаете целое List<PhotoItem>
своему GalleryViewActivity
с Intent
. Поэтому возможно, что в вашем списке List<PhotoItem>
может быть много данных. Поэтому иногда система не может обрабатывать много данных для передачи за один раз.
Пожалуйста, избегайте передачи большого количества данных с помощью Intent.
Вы можете использовать SharedPreferences
, чтобы сохранить список массивов и получить то же самое для других действий.
Инициализируйте ваши SharedPreferences, используя:
SharedPreferences prefrence = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = prefrence.edit();
Вы можете использовать этот способ для сохранения списка в переменной предпочтения
public static Intent createIntent(Context context, List<PhotoItem> gallery, int indexOf) {
Intent intent = new Intent(context, GalleryViewActivity.class);
intent.putExtra(EXTRA_PHOTO_INDEX, indexOf);
editor.putString("GallaryData", new Gson().toJson(gallery));
editor.commit();
return intent;
}
Теперь в вашем файле GalleryViewActivity.java
SharedPreferences prefrence = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = prefrence.edit();
String galleryData = prefrence.getString("GallaryData", "");
List<PhotoItem> listGallery = new Gson().fromJson(galleryData, new TypeToken<List<PhotoItem>>() {}.getType());
Вы будете иметь свой список в переменной listGallery. Вы можете получить свой индекс так же, как вы используете его прямо сейчас.