我有对象联系方式:
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写入包裹的解决方案。 感谢。
答案 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);
}