2016-05-16 33 views
1

我有一个自定义对象private List<AnotherCustomObject> mList;。请注意,AnotherCustomObject执行Parcelable写一个List到Parcelable?

但是如果我想写mListdestwriteToParcel(),然后读回来后,这才是正确的做法:

dest.writeList(mList);

,然后在读法

in.readList(mList, ClassLoader.getSystemClassLoader());

是否正确?

+1

您是否尝试过这样做呢? –

+0

它不会抛出错误,但不会使其正确 –

回答

0

请尝试使用必要的类加载器。

in.readList(mList, AnotherCustomObject.getClass().getClassLoader()); 
+0

'.class'和'.getClass()'之间有区别吗? –

+0

更好的是通过'.class'进行静态访问 –

0

List<AnotherCustomObject> mList可以使用readTypedList(List<T> list, Creator<T> c)方法来读取和写入使用writeTypedList(List<T> val)方法。

在你writeToParcel方法,你能写:

dest.writeTypedList(mList); 

然后在其中创建了一个从Parcel对象的实例,你可以把构造函数:

in.readTypedList(mList, AnotherCustomObject.CREATOR); 
相关问题