将哈希图保存到SharedPreferences中

3
如何使用SharedPreference以以下格式保存和获取Android中的Hashmap
HashMap<String, List<String>> mChildMap = new HashMap<>();    
3个回答

7

插入HashMap到SharedPreference的函数

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();
}

从SharedPreference中读取hashMap的函数

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;
}

在gradle中添加这个依赖。
implementation 'com.google.code.gson:gson:2.6.2'

2

1
您可以使用Gson库将Hashmap转换为json,并将其放置在字符串中。类似于这样:
String converted = new Gson().toJson(myMap);
SharedPreferences sharedPreferences = getSharedPreferences("mySharedName", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("key",converted).commit();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接