如何在Bundle中传递List<>?

14

我有以下代码:

List<ValueActivity> list = new ArrayList<ValueActivity>();    
list = setList();    
Intent intent = new Intent(NOTIFICATION);    
Bundle bundle = new Bundle();
bundle.put ????("list", list);
intent.putExtra("bundle", bundle);
sendBroadcast(intent);
如何编写第5行代码并在目标意图中使用getExtra方法。

你对这第五行尝试了什么? - Mysterion
请将ArrayList<CustomObject>从一个Activity传递到另一个Activity。 - Opiatefuchs
https://dev59.com/2ljUa4cB1Zd3GeqPUsxa - Neha Agarwal
公共类ValueActivity { private int id; private String nameP,nameA; private int hourS;public String get_nameP() { return nameP; } public void set_nameP(String nameP) { this.nameP = nameP; } public String get_nameA() { return nameA; } public void set_nameA(String nameA) { this.nameA = nameA; }} - user3016825
如何在第5行使用put。 - user3016825
显示剩余2条评论
2个回答

28

您需要让ValueActivity实现Parcelable接口,并实现writeToParcel(),以及一个适当的构造函数,其参数为Parcel。请参阅Parcelable接口的文档。

要将列表放入Bundle中,请使用:

bundle.putParcelableArrayList("list", list);

要从目标活动的 Bundle 中获取列表,请使用:

List<ValueActivity> = listbundle.getParcelableArrayList("list");

FYI,putParcelableArrayList需要一个ArrayList而不是List。 - Sarthak_ssg5

13

尝试使用:

String jsonList = gson.toJson(youList);
// Add String to bundle

完美的解决方案。 - CaptRisky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接