我正在尝试使用parcelable将对象数组从一个活动传递到另一个活动。在这里,我面临的问题是在解组时找不到类:

首次活动代码

  intent.setExtrasClassLoader(MenueItemDetails.class.getClassLoader());
  intent.putExtra("menue",myArray);


第二活动代码

 myArray  = (MenueItemDetails[])getIntent().getParcelableArrayExtra("menue");


这是我的课,很讨人喜欢

public class MenueItemDetails implements Parcelable {

private int id = 0, menueId = 0, type = 0, typeId = 0, styleId = 0, lineBefore = 0;
private String webSite = "", title = "", icon = "";


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

// write your object's data to the passed-in Parcel
@Override
public void writeToParcel(Parcel out, int flags) {
    out.writeInt(id);
    out.writeInt(menueId);
    out.writeInt(type);
    out.writeInt(typeId);
    out.writeInt(styleId);
    out.writeInt(lineBefore);
    out.writeString(webSite);
    out.writeString(title);
    out.writeString(icon);
}
private MenueItemDetails(Parcel in) {
    id = in.readInt();
    menueId = in.readInt();
    type = in.readInt();
    typeId = in.readInt();
    styleId= in.readInt();
    lineBefore= in.readInt();
    webSite=in.readString();
    title= in.readString();
    icon=in.readString();
}
public MenueItemDetails() {
    id = 0;
    menueId = 0;
    type = 0;
    styleId= 0;
    lineBefore= 0;
    webSite="";
    title= "";
    icon="";
}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
    public MenueItemDetails createFromParcel(Parcel in) {
        return new MenueItemDetails(in);
    }

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

public int getLineBefore() {
    return lineBefore;
}

public void setLineBefore(int lineBefore) {
    this.lineBefore = lineBefore;
}

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

public void setMenueId(int menueId) {
    this.menueId = menueId;
}

public void setTitle(String title) {
    this.title = title;
}

public void setIcon(String icon) {
    this.icon = icon;
}

public void setType(int type) {
    this.type = type;
}

public void setTypeId(int typeId) {
    this.typeId = typeId;
}

public void setStyleId(int styleId) {
    this.styleId = styleId;
}

public int getId() {
    return id;
}

public String getWebSite() {
    return webSite;
}

public void setWebSite(String webSite) {
    this.webSite = webSite;
}

public int getMenueId() {
    return menueId;
}

public String getTitle() {
    return title;
}

public String getIcon() {
    return icon;
}

public int getType() {
    return type;
}

public int getTypeId() {
    return typeId;
}

public int getStyleId() {
    return styleId;
}


}

最佳答案

您的第二项活动必须是这样的:

Intent intent = getIntent();
intent.setExtrasClassLoader(MenueItemDetails.class.getClassLoader());
myArray = (MenueItemDetails[]) intent.getParcelableArrayExtra("menue");

关于java - 解码时找不到类:可打包(Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41328694/

10-10 02:20