android - 扩展 Parcelable 以读取另一个 Parcelable

标签 android parcelable

我有一个扩展 Parcelable 的类,我们称它为 A 类。

我有另一个扩展 Parcelable 的类,我们称之为 B 类。

A 的成员变量之一是 B 类对象的 ArrayList。

我正在尝试编写 Parcelable 覆盖,但不知道如何保存和读取 B 类的 ArrayList。

有读取和写入 ArrayLists 的方法,但他们想要一个参数,它是一个 ClassLoader,我不熟悉它。我也可以将 ArrayList 复制到一个数组中,并使用方法来读取和写入 Parcelable 数组,但这也需要一个 ClassLoader 参数。

更新:

看起来像

in.readTypedList(mList, ClassB.CREATOR);

out.writeTypedList(mList);

是我要找的吗?

最佳答案

您可以将 null 作为 ClassLoader 传递以使用默认值。

Parcel.readTypedList()Parcel.writeTypedList() 似乎没问题。或者您可以使用 Parcel.readParcelableArray()Parcel.writeParcelableArray() 并将列表转换为数组。

关于android - 扩展 Parcelable 以读取另一个 Parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196643/

相关文章:

java.lang.RuntimeException : com. andoid.builder.dexing.DexArchiveMergerException 无法合并 dex

android - Android 中带有枚举的 Parcelable 对象

android - 添加项目后对数组适配器进行排序

android - 如何将 Android 连接到数据库服务器

Android:如何以编程方式切换按钮的按下状态?

java - 将可打包对象列表写入可打包对象

android - 如何使用AIDL在两个进程之间发送图像?

android - Parcelables 不支持默认值。 Android 导航深层链接参数

android - 在 Bundle 中重新启动 Activity 时保存 GoogleApiClient

android - 基于 Android 示例的 Flutter 应用程序在 BOOT_COMPLETED 上自动启动不起作用