项目涉及到通过Intent 传递一个Object对象,然而,在接收数据时,发现出现了数据错乱的问题,最后查出原因,是实体bean,在进行Parcelable序列化时,没有按照成员变量声明的顺序读取数据,导致出现获取数据出错
在一个实体类进行Parcelable序列化时,必须实现Parcelable.Creator接口,以及writeToParcel(Parcel dest, int flags) 方法,最好是通过系统自动生成,防止自己书写失手,导致传递数据出错,如果需要添加/删除变量,最好删除上面提到的接口和方法,重新生成一下,
切记,血的教训啊
public class User implements Parcelable {
private String name;
private String level;
private int age;
private int sex;
private String id;
protected User(Parcel in) {
name = in.readString();
level = in.readString();
age = in.readInt();
sex = in.readInt();
id = in.readString();
}
/**
* 1.必须实现Parcelable.Creator接口,否则在获取Person数据的时候,会报错,如下:
* android.os.BadParcelableException:
* Parcelable protocol requires a Parcelable