Android中使用Parcelable传递对象,createFromParcel中对象的赋值次序
16lz
2021-01-23
import android.os.Parcel;import android.os.Parcelable;public class Person implements Parcelable {private String name = null;private String city = null;private int age = 0;@Overridepublic int describeContents() {// TODO Auto-generated method stubreturn 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {// TODO Auto-generated method stubdest.writeString(name);dest.writeString(city);dest.writeInt(age);}public static final Parcelable.Creator CREATOR = new Creator() {@Overridepublic Person createFromParcel(Parcel source) {// TODO Auto-generated method stubPerson p = new Person();//赋值次序依照writeToParcelp.name = source.readString();//----line1p.city = source.readString();//----line2p.age = source.readInt(); //----line3return p;}@Overridepublic Person[] newArray(int size) {// TODO Auto-generated method stubreturn new Person[size];}};}
在createFromParcel方法中对新建对象p属性复制的时候,次序要依照writeToParcel方法中写入的次序,如果将line2和line1交换位置,在读取时得到的Person对象的name和city属性值将发生交换;如果将line3和line1交换位置,在读取时得到的Person对象的name和age属性值将错误 更多相关文章
- Android的contentDescription属性是什么?
- Activity之间传递类对象
- android设置Webview的滚动条属性
- Android Bundle传递对象
- 使用Android中的Parcelable序列化对象
- EditText android:windowSoftInputMode 属性之旅