0

e.g

Class City that needs to implement Parcelable has field of type Location which implements Serializable. class Location is imported from a third party jar file and I cannot modify it. How do I successfully implement Parcelable for class City with the Location field ?

chaitanyad
  • 998
  • 1
  • 9
  • 27

1 Answers1

1

Simply use Parcel.writeSerializable() and 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;
    }
}
Ben P.
  • 52,661
  • 6
  • 95
  • 123