将HashMap数据从移动设备传输到Android Wear
目前我正在尝试开发Android移动/磨损应用程序,并且遇到了需要将包含在移动设备的Hashmap中的数据发送到磨损设备的问题。我查看了Android开发人员指南,看起来我必须使用DataMap,但我仍然不知道如何将HashMap数据存储在DataMap中,并正确检索磨损设备上的信息。将HashMap数据从移动设备传输到Android Wear
如果有人可以创建这个过程的例子,或者指出我如何做到这一点的例子,将不胜感激。
这取决于你在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;
}
,后来从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
,因为你可能会覆盖现有的关键之一创建HashMap
。因此,如果您想发送任何其他内容,请在另一个DataMap
上使用putDataMap (String key, DataMap value)方法将此DataMap
嵌套在另一个内。
您应该将DataMap看作是一个修剪下来的Bundle,其中支持原始类型(以及更多);一个HashMap可以包含任何类型的对象,这不是DatMap支持的东西,因此不存在将一个映射到另一个的API。您可以遍历您的HasMap并使用DataMap.put **()方法为受支持的数据类型构建DataMap;如果你有一个DataMap不支持的对象,你需要序列化这种或那种方式(比如说,构建你的对象的json表示),然后把它放到DataMap中。除此之外,没有什么不可思议的;根据我描述的内容构建一个DataMap,然后跨设备同步这些数据,并在另一端获取一个DataMap并反转该过程以从DataMap填充一个HashMap。