我正在尝试使用Parceler传输ArrayList>的变量,但它在运行时总是会出错,只是链接intent.putParcelableArrayListExtra(“votedetail”,arrlist);.搜索并发现没有例子,如何使用它?提前谢谢。
答案 0 :(得分:0)
请在Android Developer docs上查看该方法的签名:
Intent putParcelableArrayListExtra (String name, ArrayList<? extends Parcelable> value)
ArrayList
中的对象必须 Parcelable
。
据我所知,Map<K,V>
(HashMap
,SortedMap
等)的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/