を実装するクラスがありますParcelable。このクラスの3つのフィールドもParcelableオブジェクトです。これらのフィールドをdest.writeParcelable(mParcelableObject、0)を介してパーセルに書き込み、それらを読み戻して、対応するフィールドを設定しようとすると、in.readParcelable(classLoader)が取得されClassCastExceptionます。Parcelablesに複数を書き込むことはできずParcel、システムが、書き込まれたパーセラブルのどれが私のフィールドのどれに対応するかを判断することを期待できないようです。言い換えれば、私がそれらすべてを書き、次にそれらを連続して読む場合:
someFieldOfTypeA = in.readParcelable(classLoader)
someFieldOfTypeB = in.readParcelable(classLoader)
someFieldOfTypeC = in.readParcelable(classLoader)
someFieldOfTypeB..それでは、からの書き込みに成功することはできませんreadParcelable。この読み方は、このタイプreadParcelableがクラスタイプAであると想定しています。これは、私が書いたときに最初に書いたものwriteParcelableです。
これが理にかなっていることを願っています。
では、どうすれば複数の区画を作成し、それらを読み取って、?を取得せずに対応するフィールドに割り当てることができClassCastExceptionますか?