【问题标题】:Transfer HashMap Data From Mobile to Android Wear将 HashMap 数据从移动设备传输到 Android Wear
【发布时间】:2015-08-08 18:03:25
【问题描述】:

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

如果有人可以创建此过程的示例,或向我指出如何执行此操作的示例,将不胜感激。

【问题讨论】:

    标签: java android wear-os


    【解决方案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;
    }
    

    然后从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 嵌套在另一个 DataMap 中。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多