能不能通过一个ArrayList 到活动(Can't pass an ArrayLis

2019-06-25 18:06发布

这是代码

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

ReceiverActivity

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

以下列表为空。 此外,这并不工作:

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

为MyObject是Parcelable,我实现了所有必需的方法。 我想这实现不是问题,因为否则我会recive其他类型的异常。 但我不明白,除了名单什么是空的。

提前致谢...

现在我发现这一点:

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

已在接收活动中使用,但我怎么把它和如何获取List<MyObject>List<Parcelable>

Answer 1:

使用i.putParcelableArrayListExtra(name, value)其中i是你的意图。 不使用putExtra()的parcelable的ArrayList。



Answer 2:

尝试:

ArrayList<MyObject> myList = extras.<MyObject>getParcelableArrayList("list"));


文章来源: Can't pass an ArrayList to an activity