亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自定義對象的 Parcelable 實現

自定義對象的 Parcelable 實現

MMTTMM 2021-06-08 17:02:04
我有 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)

    }

}


查看完整回答
反對 回復 2021-06-10
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號