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