public class Person implements Parcelable{ // 成員變數 private int id; private String name; // 1.必須實現Parcelable.Creator介面,否則在擷取Person資料的時候,會報錯,如下: // android.os.BadParcelableException: // Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.um.demo.Person // 2.這個介面實現了從Percel容器讀取Person資料,並返回Person對象給邏輯層使用 // 3.實現Parcelable.Creator介面對象名必須為CREATOR,不如同樣會報錯上面所提到的錯; // 4.在讀取Parcel容器裡的資料事,必須按成員變數聲明的順序讀取資料,不然會出現擷取資料出錯 // 5.還原序列化對象 public static final Parcelable.Creator<Person> CREATOR = new Creator(){ @Override public Person createFromParcel(Parcel source) { // TODO Auto-generated method stub // 必須按成員變數聲明的順序讀取資料,不然會出現擷取資料出錯 Person p = new Person(); p.setId(source.readInt()); p.setName(source.readString()); return p; } @Override public Person[] newArray(int size) { // TODO Auto-generated method stub return new Person[size]; } }; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { // TODO Auto-generated method stub // 1.必須按成員變數聲明的順序封裝資料,不然會出現擷取資料出錯 // 2.序列化對象 dest.writeInt(id); dest.writeString(name); } }