как поместить объект Location в Parcelable

#java #android

#java #Android

Вопрос:

У меня есть объект Location в одном из моих других объектов Venue, который реализует Parcelable. Как мне правильно сериализовать это в моей реализации метода writeToParcel? Итак, вот некоторый код:

 public class Venue implements Parcelable{
    public String id;
    public String name;
    public String address;
    public Location location;
    public String city;
    public String state;
    public String country;
    public String postalCode;

    @Override
    public int describeContents() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public void writeToParcel(Parcel desc, int flags) {
        desc.writeString(id);
        desc.writeString(state);
        desc.writeString(name);
        desc.writeString(address);
        desc.writeString(postalCode);
        desc.writeString(country);
        desc.writeString(city);
        //I am still missing on a way to serialize my Location object here
    }
}
  

Комментарии:

1. Пожалуйста, отредактируйте свой вопрос, чтобы было более понятно, о чем вы спрашиваете. Что вы уже пробовали?

2. отредактировано с помощью некоторого примера кода, надеюсь, это поможет

Ответ №1:

Здесь у вас есть фрагмент, как сериализовать разделяемые объекты в вашу собственную посылку.

 Location location;

public void writeToParcel(Parcel desc, int flags) {
    location.writeToParcel(desc, flags);
    /* do your other parcel stuff here */
}

public void readFromParcel(Parcel in) {
    location=Location.CREATOR.createFromParcel(in);
    /* do your other parcel stuff here */
}
  

Комментарии:

1. Спасибо, но как насчет списков / массивов? Предполагается ли хранить размер или как вы должны с ними обращаться?

Ответ №2:

location = in.readParcelable(Location.class.getClassLoader()); также работает.