这两天遇到一个问题,我在两个Activity之间(A-B)传递数据时,传递了一个实体,这个实体中有BIgDecimal类型的成员m,在A页面中这个m还是有值的,但是到了B页面m就变成null了,这个实体是实现了Parcelable接口来序列化的,开始总是找不到原因,后来通过看实现了Parcelable接口后实现的那几个方法,找到了原因,通过实现Parcelable接口序列化的步骤是:
这里我在实体类中定义了几种类型的数据:
private int one; private Integer two; private double three; private Double four; private long five; private Long six; private float seven; private String eight; private BigDecimal nine;
1)实现Parcelable接口
2)重写writeToParcel(Parcel dest,int flags)方法,将你的对象序列化为一个Parcel对象,即:将类的数据写入外部提供的Parcel中,打包需要传递的数据到Parcel容器保存,以便从 Parcel容器获取数据。
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(one); if (two == null) { dest.writeByte((byte) 0); } else { dest.writeByte((byte) 1); dest.writeInt(two); } dest.writeDouble(three); if (four