在android中,將資料在頁面間傳遞的其中一個方法就是將資料序列化以後保存在bundle內
Serializable是java的序列化,要實作非常簡單,只需要將以下的code 輸入即可
class PersonSerializable implements Serializable
{
private static final long serialVersionUID = 1L;
String name;
//...other properties
}
Parcelable 是android內部輕量級,高度最佳化的序列化協定,
簡單的說,在程序間的溝通建議使用 Parcelable。
如何使用Parcelable?
1.使用parcelable需要實作 Parcelable (廢話....)
2.必須實作 writeToParcel
3.必須實作 CEATOR(public static final 變數)
sample 如下
class Person implements Parcelable {
String name;
protected Person(Parcel in) {
name = in.readString();
}
public Person() {
// TODO Auto-generated constructor stub
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
}
public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
@Override
public Person createFromParcel(Parcel in) {
return new Person(in);
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
}
說實話... Parcelable實在不是很好實作,尤其是class 裡面有其他class或者 property一堆的時候
不過為了最佳化我還是花了點時間survey,
最後,我找到了下面這個網址 http://devk.it/proj/parcelabler/
使用方法很簡單,將以下的程式丟入Code section內 並按下 Build
class Person implements Parcelable {
String name;
}
他就自動幫你產生好所有必要的程式碼了!!~
最後,讓我們大喊一聲自動化萬歲~
沒有留言:
張貼留言