我有一个实现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
?
答案 0 :(得分:0)
嗯,对我来说,我有幸直接调用FieldOfTypeB.CREATOR.writeToParcel(dest)(因为这些字段本身是Parcelable)。