将 HashMap 数据从移动设备传输到 Android Wear
Transfer HashMap Data From Mobile to Android Wear
目前我正在尝试开发一个Android mobile/wear 应用程序,我遇到了一个问题,我需要将Hashmap 中包含的数据从移动设备发送到穿戴设备。我查看了 Android 开发人员指南,似乎我必须使用 DataMap,但我仍然不知道如何将 HashMap 数据存储在 DataMap 中并正确检索可穿戴设备上的信息。
如果有人可以创建此过程的示例,或向我指出如何执行此操作的示例,将不胜感激。
您应该将 DataMap 视为精简的 Bundle,其中支持基本类型(以及更多); HashMap 可以包含任何类型的对象,而这不是 DatMap 支持的对象,因此没有 api 将一个对象映射到另一个对象。你可以遍历你的HasMap,使用DataMap.put**()方法为支持的数据类型构建DataMap;如果您有 DataMap 不支持的对象,则需要以一种或另一种方式序列化该对象(例如,构建对象的 json 表示),然后将其放入 DataMap 中。除此之外,没有什么神奇的了。根据我所描述的内容构建一个 DataMap,然后跨设备同步它并在另一端获取 DataMap 并反转该过程以从 DataMap 填充 HashMap。
这取决于您的 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
创建 HashMap
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
嵌套在另一个内部
目前我正在尝试开发一个Android mobile/wear 应用程序,我遇到了一个问题,我需要将Hashmap 中包含的数据从移动设备发送到穿戴设备。我查看了 Android 开发人员指南,似乎我必须使用 DataMap,但我仍然不知道如何将 HashMap 数据存储在 DataMap 中并正确检索可穿戴设备上的信息。
如果有人可以创建此过程的示例,或向我指出如何执行此操作的示例,将不胜感激。
您应该将 DataMap 视为精简的 Bundle,其中支持基本类型(以及更多); HashMap 可以包含任何类型的对象,而这不是 DatMap 支持的对象,因此没有 api 将一个对象映射到另一个对象。你可以遍历你的HasMap,使用DataMap.put**()方法为支持的数据类型构建DataMap;如果您有 DataMap 不支持的对象,则需要以一种或另一种方式序列化该对象(例如,构建对象的 json 表示),然后将其放入 DataMap 中。除此之外,没有什么神奇的了。根据我所描述的内容构建一个 DataMap,然后跨设备同步它并在另一端获取 DataMap 并反转该过程以从 DataMap 填充 HashMap。
这取决于您的 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
HashMap
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
.
DataMap
嵌套在另一个内部