(一):新建两个类一个是Person.java实现Serializable接口,另一个Book.java实现Parcelable接口,代码分别如下:
Person.java:
- package
com.tutor.objecttran; - import
java.io.Serializable; - public
class Person implements Serializable { -
private static final long serialVersionUID = -7060210544600464481L; -
private String name; -
private int age; -
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; -
} -
- }
Book.java:
- package
com.tutor.objecttran; - import
android.os.Parcel; - import
android.os.Parcelable; - public
class Book implements Parcelable { -
private String bookName; -
private String author; -
private int publishTime; -
-
public String getBookName() { -
return bookName; -
} -
public void setBookName(String bookName) { -
this.bookName = bookName; -
} -
public String getAuthor() { -
return author; -
} -
public void setAuthor(String author) { -
this.author = author; -
} -
public int getPublishTime() { -
return publishTime; -
} -
public void setPublishTime(int publishTime) { -
this.publishTime = publishTime; -
} -
-
public static final Parcelable.Creator<Book> CREATOR = new Parcelable.Creator<Book>() { -
public Book createFromParcel(Parcel source) { -
Book mBook = new Book(); -
mBook.bookName = source.readString(); -
mBook.author = source.readString(); -
mBook.publishTime = source.readInt(); -
return mBook; -
} -
public Book[] newArray(int size) { -
return new Book[size]; -
} -
}; -
-
public int describeContents() { -
return 0; -
} -
public void writeToParcel(Parcel parcel, int flags) { -
parcel.writeString(bookName); -
parcel.writeString(author); -
parcel.writeInt(publishTime); -
} - }
(二):修改ObjectTranDemo.java代码如下:
ObjectTranDemo.java:
- package
com.tutor.objecttran; - import
android.app.Activity; - import
android.content.Intent; - import
android.os.Bundle; - import
android.view.View; - import
android.view.View.OnClickListener; - import
android.widget.Button; - public
class ObjectTranDemo extends Activity implements OnClickListener { -
-
private Button sButton,pButton; -
public final static String SER_KEY = "com.tutor.objecttran.ser"; -
public final static String PAR_KEY = "com.tutor.objecttran.par"; -
public void onCreate(Bundle savedInstanceState) { -
super.onCreate(savedInstanceState); -
setContentView(R.layout.main); -
setupViews(); -
-
} -
-
//我的一贯作风呵呵 -
public void setupViews(){ -
sButton = (Button)findViewById(R.id.button1); -
pButton = (Button)findViewById(R.id.button2); -
sButton.setOnClickListener(this); -
pButton.setOnClickListener(this); -
} -
//Serializeable传递对象的方法 -
public void SerializeMethod(){ -
Person mPerson = new Person(); -
mPerson.setName("frankie"); -
mPerson.setAge(25); -
Intent mIntent = new Intent(this,ObjectTranDemo1.class); -
Bundle mBundle = new Bundle(); -
mBundle.putSerializable(SER_KEY,mPerson); -
mIntent.putExtras(mBundle); -
-
startActivity(mIntent); -
} -
//Pacelable传递对象方法 -
public void PacelableMethod(){ -
Book mBook = new Book(); -
mBook.setBookName("Android Tutor"); -
mBook.setAuthor("Frankie"); -
mBook.setPublishTime(2010); -
Intent mIntent = new Intent(this,ObjectTranDemo2.class); -
Bundle mBundle = new Bundle(); -
mBundle.putParcelable(PAR_KEY, mBook); -
mIntent.putExtras(mBundle); -
-
startActivity(mIntent); -
} -
//铵钮点击事件响应 -
public void onClick(View v) { -
if(v == sButton){ -
SerializeMethod(); -
}else{ -
PacelableMethod(); -
} -
} - }