首先,自定义对象必须实现Parcelable,并且创建static final Parcelable.Creator<Contact> CREATOR对象(实现createFromParcel和newArray方法)
自定义对象为:
public static class Contact implements Parcelable {
String number;
String displayname;
public Contact() {
}
public Contact(String number, String displayname) {
this.number = number;
this.displayname = displayname;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getDisplayname() {
return displayname;
}
public void setDisplayname(String displayname) {
this.displayname = displayname;
}
public static final Parcelable.Creator<Contact> CREATOR = new Creator<Contact>() {
public Contact createFromParcel(Parcel source) {
Log.i("dd","createFromParcel:"+source);
// TODO Auto-generated method stub
Contact contact = new Contact();
contact.displayname = source.readString();
contact.number = source.readString();
return contact;
}
public Contact[] newArray(int size) {
// TODO Auto-generated method stub
return new Contact[size];
}
};
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(displayname);
dest.writeString(number);
}
}
其次在intent中放入这个list对象:
ArrayList<Contact> listContacts = new ArrayList<Contact>();
listContacts.add(new Contacts("name1","number1"));
intent.putParcelableArrayListExtra("listContacts", listContacts);
最后在activity中接受对象:
List<Contact> listContacts=new ArrayList<Contact>();
listContacts=data.getParcelableArrayListExtra("listContacts");
for(Contact contact:listContacts){
//在这处理传过来的对象数据
}
自定义对象为:
public static class Contact implements Parcelable {
String number;
String displayname;
public Contact() {
}
public Contact(String number, String displayname) {
this.number = number;
this.displayname = displayname;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getDisplayname() {
return displayname;
}
public void setDisplayname(String displayname) {
this.displayname = displayname;
}
public static final Parcelable.Creator<Contact> CREATOR = new Creator<Contact>() {
public Contact createFromParcel(Parcel source) {
Log.i("dd","createFromParcel:"+source);
// TODO Auto-generated method stub
Contact contact = new Contact();
contact.displayname = source.readString();
contact.number = source.readString();
return contact;
}
public Contact[] newArray(int size) {
// TODO Auto-generated method stub
return new Contact[size];
}
};
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(displayname);
dest.writeString(number);
}
}
其次在intent中放入这个list对象:
ArrayList<Contact> listContacts = new ArrayList<Contact>();
listContacts.add(new Contacts("name1","number1"));
intent.putParcelableArrayListExtra("listContacts", listContacts);
最后在activity中接受对象:
List<Contact> listContacts=new ArrayList<Contact>();
listContacts=data.getParcelableArrayListExtra("listContacts");
for(Contact contact:listContacts){
//在这处理传过来的对象数据
}