在Android中将两个parcelables列表写入parcel

时间:2014-05-01 07:58:14

标签: java android list parcelable parcel

我有对象联系方式:

public class Contact implements Parcelable

有属性:

private List<EmailAttribute> contact_emails_attributes = new ArrayList<EmailAttribute>();
private List<PhoneAttribute> contact_phones_attributes = new ArrayList<PhoneAttribute>();

EmailAttribute和PhoneAttribute实现Parcelable。

如何将联系人的属性写入包裹并阅读?我一直在寻找解决方案,但我找不到如何将不同的parcelables写入包裹的解决方案。 感谢。

1 个答案:

答案 0 :(得分:4)

您可以使用方法Parcel.writeTypedList(List)Parcel.readTypedList(List, Creator)执行此操作:

从包裹中读取:

public Contact(Parcel in){
   contact_emails_attributes = in.readTypedList(contact_emails_attributes, EmailAttribute.CREATOR);
   contact_phones_attributes = in.readTypedList(contact_phones_attributes, PhoneAttribute.CREATOR);
}

将其写入包裹:

public void writeToParcel(Parcel dest, int flags) {
    dest.writeTypedList(contact_emails_attributes); 
    dest.writeTypedList(contact_phones_attributes);
}