java - 将 HashMap 保存到 SharedPreferences

标签 java android hashmap sharedpreferences

<分区>

如何在 Android 中使用以下格式在 SharedPreference 中保存和获取 Hashmap

HashMap<String, List<String>> mChildMap = new HashMap<>();    

最佳答案

将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'

关于java - 将 HashMap 保存到 SharedPreferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204258/

相关文章:

安卓\Intent : Send an email with image attachment

android - Activity 单元测试

java - hashMap的内部实现

java - hashmap如何处理负hashcode?

java - 获取 HashMap 条目的最后更新日期

Java强制转换方法

javax.xml.bind.JAXBElement 无法转换为 com.oracle.xmlns.communications.ordermanagement.CreateOrderRequestType

java - 如何分割java类文件(.java)

java - 在 java 流中的映射中使用多个映射函数与 block 语句

java - 具有多个文本和图像的 ListView