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) 个答案