写parcelables到包裹

时间:2012-12-26 19:34:30

标签: android

我有一个实现Parcelable的类。此类的三个字段也是Parcelable个对象。当我将这些字段写入Parcel时,通过dest.writeParcelable(mParcelableObject,0)并尝试将它们读回并通过in.readParcelable(classLoader)设置相应的字段,我得到ClassCastException。似乎我不能将多个Parcelables写入Parcel,并期望系统找出哪些可编写的Parcelables对应于我的哪个字段。换句话说,如果我写下所有这些,然后连续阅读它们:

someFieldOfTypeA = in.readParcelable(classLoader)
someFieldOfTypeB = in.readParcelable(classLoader)
someFieldOfTypeC = in.readParcelable(classLoader)

..然后我永远无法从someFieldOfTypeB写入readParcelable。该读数假设此readParcelable的类型是类类型A,这是我写writeParcelable时写的第一个类型。

我希望这是有道理的。

那么如何编写多个parcelables然后读取它们并将它们分配到相应的字段而不会得到ClassCastException

1 个答案:

答案 0 :(得分:0)

嗯,对我来说,我有幸直接调用FieldOfTypeB.CREATOR.writeToParcel(dest)(因为这些字段本身是Parcelable)。