0

I try to transfer object between activities using interface Parcelable, but I have a problem. If I getting this object model in next activity, fields User and Place equals null, but other fields not null. Can I transfer fields User and Place in next activity in model PizzaRestraunt using Parcelable or I should use interface Serialized? Models User and Place implementing interface Parcelable.

public class PizzaRestraunt implements Parcelable {
private String id;
private String restrauntName;
private User user;
private Place place;
private String phone;
private String twitter;
private String facebook;
private int distance;
private String adress;
private String category;

public String getId() {
    return id;
}

public String getRestrauntName() {
    return restrauntName;
}

public String getPhone() {
    return phone;
}

public String getTwitter() {
    return twitter;
}

public String getFacebook() {
    return facebook;
}

public int getDistance() {
    return distance;
}
public User getUser() {
    return user;
}
public Place getPlace() {
    return place;
}

public String getAdress() {
    return adress;
}

public String getCategory() {
    return category;
}

public void setId(String id) {
    this.id = id;
}

public void setRestrauntName(String restrauntName) {
    this.restrauntName = restrauntName;
}

public void setPhone(String phone) {
    this.phone = phone;
}

public void setUser(User user) {
    this.user = user;
}
public void setPlace(Place place) {
    this.place = place;
}
public void setTwitter(String twitter) {
    this.twitter = twitter;
}

public void setFacebook(String facebook) {
    this.facebook = facebook;
}

public void setDistance(int distance) {
    this.distance = distance;
}

public void setAdress(String adress) {
    this.adress = adress;
}

public void setCategory(String category) {
    this.category = category;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
    parcel.writeString(id);
    parcel.writeString(facebook);
    parcel.writeString(twitter);
    parcel.writeString(category);
    parcel.writeString(phone);
    parcel.writeString(adress);
    parcel.writeString(restrauntName);
    parcel.writeInt(distance);

}

public static final Parcelable.Creator<PizzaRestraunt> CREATOR =
        new Parcelable.Creator<PizzaRestraunt>() {

            public PizzaRestraunt createFromParcel(Parcel in) {
                return new PizzaRestraunt(in);
            }

            public PizzaRestraunt[] newArray(int size) {
                return new PizzaRestraunt[size];
            }
        };

private PizzaRestraunt(Parcel parcel) {
    id = parcel.readString();
    restrauntName = parcel.readString();
    phone = parcel.readString();
    category = parcel.readString();
    facebook = parcel.readString();
    twitter = parcel.readString();
    adress = parcel.readString();
    distance = parcel.readInt();
}

public PizzaRestraunt() {

}
Oleg
  • 23
  • 8

1 Answers1

0

So that transfer to reference data type using interface Parcelable need to use next methods:

 @Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeParcelable(user, 1);
    dest.writeParcelable(place, 2);
}

and:

private ProjectModel(Parcel parcel) {
    user = parcel.readParcelable(User.class.getClassLoader());
    place = parcel.readParcelable(Place.class.getClassLoader());
}
Oleg
  • 23
  • 8