2

我有对象联系方式:

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。

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

4

1 回答 1

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);
}
于 2014-05-01T08:22:10.070 回答