一、创建 继承 Parcelable的bean,
代码中 writeToParcel 回调方法完成序列化,
createFromParcel回调方法完成反序列化
(注释:如果bean中变量是类则该类也要继承Parcelable)
例如:
public class Person implements Parcelable { private Address address; private String name; private int age; public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() { @Override public Person[] newArray(int size) { return null; } @Override public Person createFromParcel(Parcel source) { Person result = new Person(); //赋值次序依照writeToParcel result.age = source.readInt(); result.name = source.readString(); result.address = source.readParcelable(Address.class.getClassLoader()); return result; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(age); dest.writeString(name); dest.writeParcelable(address, PARCELABLE_WRITE_RETURN_VALUE); } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [address=" + address + ", name=" + name + ", age=" + age + "]"; } }
二、第一个activity 发送 Parcelable对象
Person person = new Person();
person.setAge(2);
Intent intent = new Intent(this,MainActivity.class);
intent.putExtra("person",person);
this.startActivity(intent);
三、第二个activity 接收 Parcelable对象
Person person = (Person) getIntent().getParcelableExtra(
"person");