Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将HashMap数据从移动设备传输到Android Wear_Java_Android_Wear Os - Fatal编程技术网

Java 将HashMap数据从移动设备传输到Android Wear

Java 将HashMap数据从移动设备传输到Android Wear,java,android,wear-os,Java,Android,Wear Os,目前我正在尝试开发一个Android mobile/wear应用程序,我遇到了一个问题,我需要将Hashmap中包含的数据从移动设备发送到wear设备。我看了Android开发者指南,似乎我必须使用DataMap,但我仍然不知道如何将HashMap数据存储在DataMap中并正确检索设备上的信息 如果有人能为这一过程创建一个示例,或者给我指出如何实现这一点的示例,我们将不胜感激。您应该将DataMap看作是一个精简包,其中支持基本类型(以及更多类型);HashMap可以包含任何类型的对象,而Da

目前我正在尝试开发一个Android mobile/wear应用程序,我遇到了一个问题,我需要将Hashmap中包含的数据从移动设备发送到wear设备。我看了Android开发者指南,似乎我必须使用DataMap,但我仍然不知道如何将HashMap数据存储在DataMap中并正确检索设备上的信息


如果有人能为这一过程创建一个示例,或者给我指出如何实现这一点的示例,我们将不胜感激。

您应该将DataMap看作是一个精简包,其中支持基本类型(以及更多类型);HashMap可以包含任何类型的对象,而DatMap不支持这种类型的对象,因此没有api将一个对象映射到另一个对象。您可以遍历HasMap并使用DataMap.put**()方法为支持的数据类型构建DataMap;如果您有一个DataMap不支持的对象,则需要以这种或那种方式序列化(比如,构建对象的json表示),然后将其放入DataMap中。除此之外,没有什么神奇的东西;基于我所描述的内容构建一个数据映射,然后跨设备同步,在另一端获取一个数据映射,并反转该过程以从数据映射填充一个HashMap

这取决于您的
HashMap
中有哪些类型,但是假设您有
HashMap
,您只需要遍历所有值并将它们添加到
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
中存储任何其他内容,因为您可能会覆盖其中一个现有键。因此,如果您想发送任何其他内容,您应该使用另一个
DataMap
上的方法将此
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;
}