Java 通过intent传递带有递归引用的ArrayList
我有包裹类Java 通过intent传递带有递归引用的ArrayList,java,android,android-intent,parcelable,Java,Android,Android Intent,Parcelable,我有包裹类 public static class Category implements Parcelable { public String name; public int id; public ArrayList<Category> childrenCategory; public Category(Parcel in) { super(); readFromParcel(in); } pub
public static class Category implements Parcelable {
public String name;
public int id;
public ArrayList<Category> childrenCategory;
public Category(Parcel in) {
super();
readFromParcel(in);
}
public static final Parcelable.Creator<Category> CREATOR = new Parcelable.Creator<Category>() {
public Category createFromParcel(Parcel in) {
return new Category(in);
}
public Category[] newArray(int size) {
return new Category[size];
}
};
public void readFromParcel(Parcel in) {
this.name = in.readString();
this.id = in.readInt();
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(id);
}
@Override
public int describeContents() {
return 0;
}
}
我想以这种方式通过它
public void onClick(View v) {
ArrayList<Categories> categories = new ArrayList<Categories>();
Intent intent = new Intent(getApplicationContext(),
MainActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("arrayListName", categories);
inten.putExtra("bundleName", bundle);
startActivity(intent);
}
然后用这个代码来读
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
ArrayList<Category> categories = b.getParcelableArrayList("arrayListName");
readFromParcel和writeToParcel方法中缺少代码
任何人都可以提出一些建议。为什么不对每个孩子调用writeToParcel呢?如果您只是想将它从一个活动传递到另一个活动,我会将它存储在singleton类的公共静态成员变量中。这样做更容易,而且不会创建大量对象。