工作需要 用intent 传递了一个 parcelable 的list.结果在取的时候抛异常了。
异常如下:
Parcel android.os.Parcel@1bf4a17f: Unmarshalling unknown type code 3276899 a
找了半天才发现 读和取的顺序必须是一致的 不然就会报错。
附上例子代码:
public static final Creator<WechatImage> CREATOR = new Creator<WechatImage>() {
@Override
public WechatImage createFromParcel(Parcel in) {
WechatImage wechatImage = new WechatImage();
wechatImage.url = in.readString();
wechatImage.id= in.readInt();
return new WechatImage(in);
}
protected WechatImage(Parcel in) {
url = in.readString();
id = in.readInt();
}
上面的 url,id的顺序 必须跟下面方法里面的顺序一致:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(url);
dest.writeInt(id);
}