如何使用Parceler与ArrayList <map <string,string =“”>&gt;?

时间:2017-10-25 14:41:24

标签: arraylist parceler

我正在尝试使用Parceler传输ArrayList&gt;的变量,但它在运行时总是会出错,只是链接intent.putParcelableArrayListExtra(“votedetail”,arrlist);.搜索并发现没有例子,如何使用它?提前谢谢。

3 个答案:

答案 0 :(得分:0)

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

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

ArrayList 中的对象必须 Parcelable。 据我所知,Map<K,V>HashMapSortedMap等)的Android SDK实施不会实现Parcelable。您必须编写自己的实现,也将是Parcelable

答案 1 :(得分:0)

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

"Arraylist<Map<String, String>>" 

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

答案 2 :(得分: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/