有字段是对象的处理,必须**createTypedArrayList和dest.writeTypedList()**只有这样才可以在反序列化的时候收到值。还有一个对象序列化使用intent传值后,反序列化的对象和原来的对象不是一个引用。
以下是bean类的序列化:
public class ResponseDefault implements Parcelable {
private String pTransfer;
private String pSalesMan;
private List<LogNoDetailBean> LogNoDetail;
protected ResponseDefaultValueCustomer(Parcel in) {
pPackKind = in.readString();
pTransfer = in.readString();
pSalesMan = in.readString();
LogNoDetail = in.createTypedArrayList(LogNoDetailBean.CREATOR);
}
public static final Creator<ResponseDefaultValueCustomer> CREATOR = new
Creator<ResponseDefaultValueCustomer>() {
@Override
public ResponseDefaultValueCustomer createFromParcel(Parcel in) {
return new ResponseDefaultValueCustomer(in);
}
@Override
public ResponseDefaultValueCustomer[] newArray(int size) {
return new ResponseDefaultValueCustomer[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(pTransfer);
dest.writeString(pSalesMan);
dest.writeTypedList(LogNoDetail);
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class LogNoDetailBean implements Parcelable {
/**
* LogNo : 京A-77777
*/
private String LogNo;
protected LogNoDetailBean(Parcel in) {
LogNo = in.readString();
}
public static final Creator<LogNoDetailBean> CREATOR = new Creator<LogNoDetailBean>() {
@Override
public LogNoDetailBean createFromParcel(Parcel in) {
return new LogNoDetailBean(in);
}
@Override
public LogNoDetailBean[] newArray(int size) {
return new LogNoDetailBean[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(LogNo);
}
}
}