如何写Parcelable()一个实现Serializable的类型的字段
Posted
技术标签:
【中文标题】如何写Parcelable()一个实现Serializable的类型的字段【英文标题】:How to writeParcelable() a field of type that implements Serializable 【发布时间】:2018-01-04 20:43:03 【问题描述】:例如
需要实现 Parcelable 的类 City 具有实现 Serializable 的 Location 类型字段。类 Location 是从第三方 jar 文件导入的,我无法修改它。如何使用 Location 字段为 City 类成功实现 Parcelable?
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于如何写Parcelable()一个实现Serializable的类型的字段的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ArrayList<Parcelable> 正确实现 Parcelable?
Android中Intent传递对象的两种方法(Serializable,Parcelable)