问问题
534 次
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 回答