を実装するクラスがあります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
ますか?