我尝试使用接口包裹在活动之间传输对象,但是我有问题。如果我在下一个活动中获取此对象模型,请字段用户并将其放置等于NULL,而其他字段则不为空。我可以使用包裹式的pizzarestraunt将字段转移并在模型Pizzarestraunt中进行下一个活动,还是我应该使用序列化?模型用户并放置实现接口包装。
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() {
}
,以便使用接口包裹的转移到参考数据类型需要使用下一步方法:
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(user, 1);
dest.writeParcelable(place, 2);
}
和:
private ProjectModel(Parcel parcel) {
user = parcel.readParcelable(User.class.getClassLoader());
place = parcel.readParcelable(Place.class.getClassLoader());
}