SharedPreferences存储 list map

2024-09-03 18:32

本文主要是介绍SharedPreferences存储 list map,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1通过SharedPreferences将List<Map<String, String>>进行存储

保存数据

public void saveInfo(Context context, String key, List<Map<String, String>> datas) {JSONArray mJsonArray = new JSONArray();for (int i = 0; i < datas.size(); i++) {Map<String, String> itemMap = datas.get(i);Iterator<Entry<String, String>> iterator = itemMap.entrySet().iterator();JSONObject object = new JSONObject();while (iterator.hasNext()) {Entry<String, String> entry = iterator.next();try {object.put(entry.getKey(), entry.getValue());} catch (JSONException e) {e.printStackTrace();}}mJsonArray.put(object);}SharedPreferences sp = context.getSharedPreferences("finals", Context.MODE_PRIVATE);Editor editor = sp.edit();editor.putString(key, mJsonArray.toString());editor.commit();}


2 取数据

public List<Map<String, String>> getInfo(Context context, String key) {List<Map<String, String>> datas = new ArrayList<Map<String, String>>();SharedPreferences sp = context.getSharedPreferences("finals", Context.MODE_PRIVATE);String result = sp.getString(key, "");try {JSONArray array = new JSONArray(result);for (int i = 0; i < array.length(); i++) {JSONObject itemObject = array.getJSONObject(i);Map<String, String> itemMap = new HashMap<String, String>();JSONArray names = itemObject.names();if (names != null) {for (int j = 0; j < names.length(); j++) {String name = names.getString(j);String value = itemObject.getString(name);itemMap.put(name, value);}}datas.add(itemMap);}} catch (JSONException e) {e.printStackTrace();}return datas;}

2通过SharedPreferences将Map<String, String>进行存储

1 先保存成json

public static JSONObject getMaptojson(Map<String, String> map) {Map<String, String> params = new HashMap<String, String>();JSONObject json = new JSONObject();try {Iterator iter = map.entrySet().iterator();while (iter.hasNext()) {Map.Entry entry = (Map.Entry) iter.next();Object key = entry.getKey().toString();Object val = entry.getValue().toString();json.put((String) key, val);}} catch (Exception e) {e.printStackTrace();}return json;}
 public static Map<String, String> gettojsontoMap(String json) {Map maps = (Map) JSON.parse(json + "");return maps;}
3通过SharedPreferences将List<String>进行存储
/** * 存储List<String> */  public static void putStrListValue(Context context, String key,  List<String> strList) {  if (null == strList) {  return;  }  // 保存之前先清理已经存在的数据,保证数据的唯一性  removeStrList(context, key);  int size = strList.size();  putIntValue(context, key + "size", size);  for (int i = 0; i < size; i++) {  putStringValue(context, key + i, strList.get(i));  }  }  /** * 取出List<String> */  public static List<String> getStrListValue(Context context, String key) {  List<String> strList = new ArrayList<String>();  int size = getIntValue(context, key + "size", 0);  //Log.d("sp", "" + size);  for (int i = 0; i < size; i++) {  strList.add(getStringValue(context, key + i, null));  }  return strList;  } 

这篇关于SharedPreferences存储 list map的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133714

相关文章

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

java streamfilter list 过滤的实现

《javastreamfilterlist过滤的实现》JavaStreamAPI中的filter方法是过滤List集合中元素的一个强大工具,可以轻松地根据自定义条件筛选出符合要求的元素,本文就来... 目录1. 创建一个示例List2. 使用Stream的filter方法进行过滤3. 自定义过滤条件1. 定

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

Java实现数据库图片上传与存储功能

《Java实现数据库图片上传与存储功能》在现代的Web开发中,上传图片并将其存储在数据库中是常见的需求之一,本文将介绍如何通过Java实现图片上传,存储到数据库的完整过程,希望对大家有所帮助... 目录1. 项目结构2. 数据库表设计3. 实现图片上传功能3.1 文件上传控制器3.2 图片上传服务4. 实现

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v