java - 如何将 Parcelable 数组传递给 fragment 和 Activity

标签 java android

我正在使用自定义可打包类。我需要将此类作为数组传递给另一个 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/

相关文章:

c++ - 使用实现 CvCameraViewListener2 的类将帧从 android 传递到 native 方法

java - 有什么方法可以通过作业名称在 Quartz 中获取作业 key

java - 在 libgdx 中隐藏返回、主页和最近使用的应用程序按钮

java - Spring Boot中无法建立一对一关系,@JoinColumns(列不存在)

android - 启用 pjsip 日志配置 android

android - CallLog.Calls.NEW?这是什么意思?

java - 我无法将自定义微调器 XML 调用到我的 mainactivity.java 中

java - Java 中 'event' 驱动的内容通知服务的设计模式是什么?

java - 如何通过 Java 中的套接字获取错误流?

Android sdk 管理器打不开