我正在尝试使用Parceler来传输ArrayList>的变量,但是运行时总是出错,只需链接intent.putParcelableArrayListExtra("votedetail", arrlist);。搜了一下,没有例子,怎么用?先感谢您。
问问题
575 次
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
必须是 Parcelable
s。据我所知,Map<K,V>
( HashMap
,SortedMap
等) 的 Android SDK 实现不实现Parcelable
. 您将必须编写自己的实现,这也将是Parcelable
.
于 2017-10-25T15:12:27.343 回答