您正在将整体传递List<PhotoItem>
给您的GalleryViewActivity
with Intent
。因此,您的列表List<PhotoItem>
可能包含许多数据。因此,有时系统一次无法处理大量数据传输。
请避免使用 Intent 传递大量数据。
您可以使用SharedPreferences
来存储您的数组列表并在其他活动中检索相同的列表。
使用以下方法初始化您的 SharedPreferences:
SharedPreferences prefrence = PreferenceManager.getDefaultSharedPreferences(context);
Editor editor = prefrence.edit();
您可以使用这种方式将列表存储在 Preference 变量中
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 变量中拥有您的列表。您可以像现在使用的相同方式检索索引。