5

这是代码

ArrayList<MyObject> list = new ArrayList<MyObject>();
list.add(new MyObject());
Intent intent = new Intent(this, ReceiverActivity.class);
intent.putExtra("list", list);
startActivity(intent);

接收者活动

List<MyObject> list = (List<MyObject>)getIntent().getExtras().getParcelable("list");

这里列表为空。这也不起作用:

List<MyObject> list = (List<MyObject>)getIntent().getExtras().getSerializable("list");

MyObject 是 Parcelable,我实现了所有必需的方法。我想这个实现不是问题,因为否则我会收到其他类型的异常。但除了列表为空之外,我什么也没得到。

提前致谢...

现在我发现了这个:

List<Parcelable> list = (List<Parcelable>)getIntent().getParcelableArrayListExtra("list");

必须在接收器活动中使用它,但是我如何发送它以及如何从中List<MyObject>获取List<Parcelable>

4

2 回答 2

15

i.putParcelableArrayListExtra(name, value)在我是你的意图的地方使用。不要将 putExtra() 用于可打包的 ArrayList。

于 2012-06-25T13:54:26.107 回答
6

尝试:

ArrayList<MyObject> myList = extras.<MyObject>getParcelableArrayList("list"));
于 2015-04-22T20:22:21.833 回答