Writing/reading Parcelable 对象的 ArrayList

Writing/reading an ArrayList of Parcelable objects

我有一个名为 ClassA 的 class,其中包含 ListClassB 个对象。 class 都实现了 Parcelable.

我正在尝试为 ClassA 中的此列表创建 read/write 方法,但遇到了问题。例如我试过:

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeList(mClassBList);
}

然后

private ClassA(Parcel in) { 
    mClassBList = in.readList();
}

抛出错误,因为它需要所有这些额外的参数。

我如何正确read/write这个List

George 和 buczek 建议的链接对您的情况很有帮助。 也许更直接,你需要做这样的事情:

//Supposing you declared mClassBList as:
List<ClassB> mClassBList = new ArrayList<ClassB>(); 
in.readTypedList(mClassBList, ClassB.CREATOR);

我仍然建议您查看答案,尤其是(如 Buczek 所建议的)How to pass a parcelable object that contains a list of objects?