Android存储:SharePreferences保存Map方法
16lz
2021-01-25
场景:工作需要动态保存一个map,每次需要进行查询是否有某个元素,有的话就不保存,没有就保存
保存map
/** * 用于保存集合 * * @param map map数据 * @return 保存结果 */ public static boolean putHashMapData(Map map) { boolean result; SharedPreferences sp = MyApplication.getContext().getSharedPreferences("SIGN", Context.MODE_PRIVATE); SharedPreferences.Editor editor = sp.edit(); try { Gson gson = new Gson(); String json = gson.toJson(map); editor.putString("recognizeUserMap", json); result = true; } catch (Exception e) { result = false; e.printStackTrace(); } editor.apply(); return result; }
取出map
/** * 用于取出集合 * * @return HashMap */ public static HashMap getHashMapData(Class clsV) { SharedPreferences sp = MyApplication.getContext().getSharedPreferences("SIGN", Context.MODE_PRIVATE); String json = sp.getString("recognizeUserMap", ""); HashMap map = new HashMap<>(); Gson gson = new Gson(); /*JsonObject obj = new JsonParser().parse(json).getAsJsonObject(); Set> entrySet = obj.entrySet(); for (Map.Entry entry : entrySet) { String entryKey = entry.getKey(); JsonObject value = (JsonObject) entry.getValue(); map.put(entryKey, gson.fromJson(value, clsV)); }*/ JsonParser jsonParser = new JsonParser(); JsonObject obj= jsonParser.parse(json).getAsJsonObject(); map.put("recognizeUserMap", gson.fromJson(obj, clsV)); Log.e(TAG, "getHashMapData-------------------" + obj.toString()); return map; }
更多相关文章
- 高级Redis应用进阶课 一站式Redis解决方案
- Android面试题目大全
- Android(安卓)Camera预览左右上下镜像
- Android(安卓)动态菜单实现实例代码
- 【Android(安卓)开发教程】使用Intent-Filter
- 【Android(安卓)开发教程】TableLayout表格布局
- android中动态给EditText获得焦点并弹起软键盘的方法详解
- Android完全退出App,关闭所有的Activity
- Android四大组件之BroadCast