android parcelable

 數據模型:

public class Student implements Parcelable

{
    
    public int id;
    public String name;
    
    
    Student(Parcel in)
    {
        this.id = in.readInt();  
        this.name = in.readString();  
    }
    
    
    
    public Student() {
        // TODO Auto-generated constructor stub
    }



    public int describeContents() {
        // TODO Auto-generated method stub
        Log.d("aa->","describeContents");  
        return 0;
    }
    public void writeToParcel(Parcel dest, int flags) {
        // TODO Auto-generated method stub
        Log.i("student--->","writeToParcel");  
        dest.writeString(name);  
        dest.writeInt(id);  
    }
    
    
    
    
    
    
     public static final Parcelable.Creator<Student> CREATOR
     = new Parcelable.Creator<Student>() {
 public Student createFromParcel(Parcel in) {
        Log.i("student====>","createFromParcel");  
     return new Student(in);
 }

 public Student[] newArray(int size) {
     return new Student[size];
 }
};
}

activity測試

public class TestParcelActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_parcel);
        
        Student s = new Student();
        s.id=11;
        s.name = new String("Hello");
        
        Bundle bundle  = new Bundle();
        bundle.putParcelable("parcel", s);
        
        Student s1 = bundle.getParcelable("parcel");
        Log.i("s1--->id", s1.id+"");
        Log.i("s1--->name", s1.name);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_test_parcel, menu);
        return true;
    }

    
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章