有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java包裹:无法封送值向量3

我试图将一个包含arraylist的模型对象从一个活动传递到另一个活动,但我似乎错过了Parcelable类或intent之类的东西

这就是我得到的错误:

java.lang.RuntimeException: Parcel: unable to marshal value Vector3 <x, y, z>: <-0.5, -0.5, 0.0>

模范班

public class Model implements Parcelable{
public List<Stack> surfaces;
public Info info;

public Model(List<Stack> surf){
    surfaces = surf;
}

public void setInfo(Info i){
    info=i;
}

public Info getInfo(){
    return info;
}

public List<Stack> getSurfaces(){
    return surfaces;
}

public int numSurfaces(){
    return surfaces.size();
}

public int describeContents() {
    return 0;
}

public void writeToParcel(Parcel out, int flags) {
    out.writeList(surfaces);
    Parcelable infoP = ((Parcelable) info);
    out.writeParcelable(infoP, 0);
}

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

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

private Model(Parcel in) {
    surfaces = new ArrayList<Stack>();
    in.readList(surfaces, Stack.class.getClassLoader());
    info = in.readParcelable(Info.class.getClassLoader());
}

public class Info{
    String title;
    String descr;

    public Info(String t, String d){
        title=t;
        descr=d;
    }

    public Info(String t){
        title=t;
    }

    public void setDescr(String d){
        descr=d;
    }
}}

第一项活动

...
Model model= new Model(surfaces);

Intent intent = new Intent(this, EditorPresenter.class);
intent.putExtra("model", model);
startActivity(intent);

第二项活动

...
Intent intent = getIntent();
model= intent.getParcelableExtra("points");
surf = model.surfaces.toArray(new Stack[model.numSurfaces()]);
...

非常感谢您的帮助


共 (0) 个答案