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