1

我正在尝试使用Parceler来传输ArrayList>的变量,但是运行时总是出错,只需链接intent.putParcelableArrayListExtra("votedetail", arrlist);。搜了一下,没有例子,怎么用?先感谢您。

4

3 回答 3

0

B0Andrew,感谢您的帮助。我终于找到了答案。使用 putParcelableArrayList 来做到这一点。首先将

"Arraylist<Map<String, String>>" 

变成 Arraylist(新建一个 Arraylist,然后添加变量),然后我可以使用 putParcelableArrayList 来传输数据。

于 2017-10-26T07:40:53.237 回答
0

Parceler 是一个用于序列化Parcelable对象的库。无需使用putParcelableArrayListExtra(),只需使用putParcelable()

List<Map<String, String>> value = new ArrayList<>();
// Fill out List

intent.putParcelable("votedetail", Parcels.wrap(value));

您可以在onCreate接收活动中反序列化:

List<Map<String, String>> value = intent.getParcelableExtra("votedetail");

您可以在网站上找到有关如何直接使用它的示例:http: //parceler.org/

于 2017-10-27T01:43:39.730 回答
0

请查看Android Developer docs上的方法签名:

Intent putParcelableArrayListExtra (String name, ArrayList<? extends Parcelable> value)

中的对象ArrayList 必须是 Parcelables。据我所知,Map<K,V>( HashMap,SortedMap等) 的 Android SDK 实现不实现Parcelable. 您将必须编写自己的实现,这也将是Parcelable.

于 2017-10-25T15:12:27.343 回答