2015-08-08 106 views
0

目前我正在嘗試開發Android移動/磨損應用程序,並且遇到了需要將包含在移動設備的Hashmap中的數據發送到磨損設備的問題。我查看了Android開發人員指南,看起來我必須使用DataMap,但我仍然不知道如何將HashMap數據存儲在DataMap中,並正確檢索磨損設備上的信息。將HashMap數據從移動設備傳輸到Android Wear

如果有人可以創建這個過程的例子,或者指出我如何做到這一點的例子,將不勝感激。

回答

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

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嵌套在另一個內。

1

您應該將DataMap看作是一個修剪下來的Bundle,其中支持原始類型(以及更多);一個HashMap可以包含任何類型的對象,這不是DatMap支持的東西,因此不存在將一個映射到另一個的API。您可以遍歷您的HasMap並使用DataMap.put **()方法爲受支持的數據類型構建DataMap;如果你有一個DataMap不支持的對象,你需要序列化這種或那種方式(比如說,構建你的對象的json表示),然後把它放到DataMap中。除此之外,沒有什麼不可思議的;根據我描述的內容構建一個DataMap,然後跨設備同步這些數據,並在另一端獲取一個DataMap並反轉該過程以從DataMap填充一個HashMap。

相關問題