目前我正在尝试开发Android移动/磨损应用程序,我遇到了一个问题,我需要将Hashmap中包含的数据从移动设备发送到磨损设备。我查看了Android开发人员指南,似乎我必须使用DataMap,但我仍然不知道如何将HashMap数据存储在DataMap中并正确检索Wear设备上的信息。
如果有人可以创建此过程的示例,或者向我指出如何执行此操作的示例,我们将不胜感激。
答案 0 :(得分:1)
您应该将DataMap视为一个精简的Bundle,其中支持原始类型(以及更多); HashMap可以包含任何类型的对象,而不是DatMap支持的对象,因此没有api可以将一个对象映射到另一个。您可以遍历HasMap并使用DataMap.put **()方法为受支持的数据类型构建DataMap;如果你有一个DataMap不支持的对象,你需要以某种方式序列化(比如构建对象的json表示),然后将它放在DataMap中。除此之外,没有什么神奇之处;根据我描述的内容构建一个DataMap,然后跨设备同步并在另一端获取DataMap并反转该过程以从DataMap填充HashMap。
答案 1 :(得分:1)
这取决于您在HashMap
中的类型,但假设您有HashMap<String, String>
,您只需要浏览所有值并将其复制到DataMap
。
public static DataMap toDataMap(HashMap<String, String> hashMap) {
DataMap dataMap = new DataMap();
for (Map.Entry<String, String> entry : hashMap.entrySet()) {
dataMap.putString(entry.getKey(), entry.getValue());
}
return dataMap;
}
以及稍后从HashMap
DataMap
public static HashMap<String, String> fromDataMap(DataMap dataMap) {
HashMap<String, String> hashMap = new HashMap<String, String>();
for (String key : dataMap.keySet()) {
hashMap.put(key, dataMap.getString(key));
}
return hashMap;
}
当然记住不要在这样生成的DataMap
中存储任何其他内容,因为您可能会覆盖现有密钥之一。因此,如果您想要发送任何其他内容,则应在另一个DataMap
上使用putDataMap (String key, DataMap value)方法将此DataMap
嵌套在另一个{。}}内。