我有 3 種 POJO 類型:一個包含成分的 Recipe,然后是包含步驟的成分。下面是我的設置,我正在嘗試實現 Parcelable 并且無法確定適當的讀寫方法:食譜.Java:public class Recipe implements Parcelable {protected List<Ingredients> ingredients;private String id;private String servings;private String name;private String image;private List<Steps> steps;protected Recipe(Parcel in) { in.createTypedArray(CREATOR.createFromParcel(Ingredients)); in.createTypedArray(Ingredients.); id = in.readString(); servings = in.readString(); name = in.readString(); image = in.readString(); steps = in.readArrayList(ClassLoader.getSystemClassLoader());}public static final Creator<Ingredients> CREATOR = new Creator<Ingredients>() { @Override public Ingredients createFromParcel(Parcel parcel) { return new Ingredients(parcel); } @Override public Ingredients[] newArray(int i) { return new Ingredients[0]; }}public static final Creator<Recipe> CREATOR = new Creator<Recipe>() { @Override public Recipe createFromParcel(Parcel in) { return new Recipe(in); } @Override public Recipe[] newArray(int size) { return new Recipe[size]; }};public List<Ingredients> getIngredients() { return ingredients;}public void setIngredients(List<Ingredients> ingredients) { this.ingredients = ingredients;}public String getId() { return id;}public void setId(String id) { this.id = id;}public String getServings() { return servings;}public void setServings(String servings) { this.servings = servings;}public String getName() { return name;}public void setName(String name) { this.name = name;}public String getImage() { return image;}public void setImage(String image) { this.image = image;}public List<Steps> getSteps() { return steps;}public void setSteps(List<Steps> steps) { this.steps = steps;}
1 回答

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
我建議您使用Paperparcel等第三方庫來減少樣板文件。
使用示例:
@PaperParcel // (1)
public final class User implements Parcelable {
public static final Creator<User> CREATOR = PaperParcelUser.CREATOR; // (2)
long id; // (3)
String firstName; // (3)
String lastName; // (3)
@Override public int describeContents() {
return 0;
}
@Override public void writeToParcel(Parcel dest, int flags) {
PaperParcelUser.writeToParcel(this, dest, flags); // (4)
}
}
添加回答
舉報
0/150
提交
取消