我正在寻找一种将Bundle转换为HashMap的方法。我很惊讶这种方法不在docs。
Bundle是否等同于Map,你有String keys 和Object values ?它理论上可以转换为映射吗?这样做的方法是什么?
编辑: Bundle中键和值之间的关系是否明确?
答案 0 :(得分:8)
Bundle不是Map的等价物,你有String键和Object值吗?
首先,Map
不一定有String
个密钥。
其次,虽然Map
可以容纳任意对象,但它不能以类型安全的方式执行。 IOW,如果您希望Map
包含字符串,整数等,则需要继续投射get()
次调用的结果,因为Map
必须是Map<String, Object>
1}}。
第三,Bundle
实现Parcelable
,这对Android IPC非常重要。 Map
是一个界面,不会扩展Parcelable
。
嗯,当然,虽然我没看到它会带来什么好处。它理论上可以转换为映射吗?
这样做的方法是什么?
对keySet()
进行迭代,并在get()
上为每个密钥调用Bundle
,将结果放入Map<String, Object>
。