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类的公共静态成员变量中。这样做更容易,而且不会创建大量对象。