如何使用SharedPreference
中的以下格式在Android中保存和获取HashmapHashMap<String, List<String>> mChildMap = new HashMap<>();
答案 0 :(得分:2)
最简单的方法是使用Google的Gson将HashMap保存为json。 使用getter和setter方法为HashMap创建一个Wrapper类。 请参阅以下答案。
答案 1 :(得分:2)
将HashMap插入SharedPreference的功能
function foo(a, callback) {
console.log(a);
return callback(a);
}
function bar(a) {
return a;
}
console.log(foo(3, bar));
从SharedPreference
读取hashMap的函数private void insertToSP(HashMap<String, List<String>> jsonMap) {
String jsonString = new Gson().toJson(jsonMap);
SharedPreferences sharedPreferences = getSharedPreferences("HashMap", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("map", jsonString);
editor.apply();
}
在gradle中添加此依赖项
private HashMap<String, List<String>> readFromSP(){
SharedPreferences sharedPreferences = getSharedPreferences("HashMap", MODE_PRIVATE);
String defValue = new Gson().toJson(new HashMap<String, List<String>>());
String json=sharedPreferences.getString("map",defValue);
TypeToken<HashMap<String,List<String>>> token = new TypeToken<HashMap<String,List<String>>>() {};
HashMap<String,List<String>> retrievedMap=new Gson().fromJson(json,token.getType());
return retrievedMap;
}
答案 2 :(得分:1)
您可以将Hashmap转换为带有Gson库的json,并将其作为String。像这样:
String converted = new Gson().toJson(myMap);
SharedPreferences sharedPreferences = getSharedPreferences("mySharedName", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("key",converted).commit();