e.g
需要实现Parcelable的Class City具有实现Serializable的Location类型的字段。 class位置是从第三方jar文件导入的,我无法修改它。如何使用位置字段为类City成功实现Parcelable?
答案 0 :(得分:1)
只需使用Parcel.writeSerializable()
和Parcel.readSerializable()
public class MyParcelableObject implements Parcelable {
public static final Parcelable.Creator<MyParcelableObject> CREATOR =
new Parcelable.Creator<MyParcelableObject>() {
@Override
public MyParcelableObject createFromParcel(Parcel in) {
return new MyParcelableObject(in);
}
@Override
public MyParcelableObject[] newArray(int size) {
return new MyParcelableObject[size];
}
};
private final MySerializableObject mySerializableField;
private MyParcelableObject(Parcel in) {
this.mySerializableField = (MySerializableObject) in.readSerializable();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeSerializable(mySerializableField);
}
@Override
public int describeContents() {
return 0;
}
}