我正在使用自定义可打包类。我需要将此类作为数组传递给另一个 Activity 和新 fragment 。我用谷歌搜索,但我找到了 arrayList 但没有找到数组。请注意我需要传递数组而不是数组列表。如何实现?请再次注意,性能是一个大问题。因此,任何性能消耗较少的解决方案都非常受欢迎。
任何帮助将不胜感激。
最佳答案
您可以按以下代码 fragment 传递您的 arrayList。
TestFragment testFragment = new TestFragment();
Bundle args = new Bundle();
args.putSerializable("parsedData", (Serializable)mTestModelList);
testFragment.setArguments(args);
然后在模型中获取这些可解析数据,如下所示:
mTestModelList = (List<TestModel>)getArguments().get("parsedData");
是的,Serialization 比 Parcelable 慢一点。
您可以使用 parceler 来实现它
当然,可以将 ParcelWrapper 添加到 Android Bundle 中,使用以下方法从 Activity 传输到 Activity:
Bundle bundle = new Bundle();
bundle.putParcelable("example", Parcels.wrap(example));
并在 onCreate() 方法中取消引用:
Example example = Parcels.unwrap(getIntent().getParcelableExtra("example"));
您可以获得与 Parcelable 和 Serializable 相关的性能的更多详细信息 here .
关于java - 如何将 Parcelable 数组传递给 fragment 和 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21019770/