Android中使用Parcelable传递对象,createFromParcel中对象的赋值次序
16lz
2022-05-24
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开发EditText属性
- Android中Spinner根据value来选择选中项
- android 用代码编写linearlayout布局
- Activity之间传递类对象
- android的shader渲染器
- 使用Android中的Parcelable序列化对象
- Android开发(二十九)——layout_weight的含义
- Android之创建程序快捷方式
- android平台解析epub格式的书籍信息