-1
4

1 回答 1

0

我假设您有一个 CREATOR,如果没有,请创建一个。然后我会这样尝试:

ArrayList<MyParcelable> myArrayListOfParcelables = new ArrayList<MyParcelable>();

//...

Intent intent = new Intent(this, ChooseGiftDetailsActivity.class);
intent.putIntExtra(Constants.FOO_COUNT, myArrayListOfParcelables.size());
MyParcelable p;
for (int i = 0; i < myArrayListOfParcelables.size(); i++){
    p = myArrayListOfParcelables.get(i);
    intent.putParcelableExtra(Constants.FOO + "_" + i, p);
}
startActivity(intent);

然后再次像这样阅读它:

Intent intent = getIntent();
int cnt = intent.getIntExtra(Constants.FOO_COUNT);
ArrayList<MyParcelable> myArrayListOfParcelables = new ArrayList<MyParcelable>(cnt);
MyParcelable p;
for (int i = 0; i < cnt; i++){
    p = (MyParcelable)intent.getParcelableExtra(Constants.FOO + "_" + i);
    myArrayListOfParcelables.add(p);
}

这样,您就有能力更好地看到引擎盖下发生的事情。您的 Parcelables 数组可能太大而无法被 Parceled。我试过一次通过位图并遇到类似的问题。

于 2012-06-26T11:04:00.847 回答