用SharedPreferences保存List(Map(String, String))数据
原因:
SharedPreferences没有保存数组的方法,但是有时候为了保存一个数组而进行序列化,或者动用sqlite都是有点杀猪焉用牛刀的感觉,所以就自己动手改进一下吧。
解决方案:
采用的方式是先转换成JSON,然后保存字符串,取出的时候再讲JSON转换成数组就好了。
public void saveInfo(Context context, String key, List<map<string, string="">> datas) {
JSONArray mJsonArray = new JSONArray();
for (int i = ; 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) { }
}
mJsonArray.put(object);
} SharedPreferences sp = context.getSharedPreferences("finals", Context.MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString(key, mJsonArray.toString());
editor.commit();
} 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 = ; 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 = ; j < names.length(); j++) {
String name = names.getString(j);
String value = itemObject.getString(name);
itemMap.put(name, value);
}
}
datas.add(itemMap);
}
} catch (JSONException e) { } return datas;
}
用SharedPreferences保存List(Map(String, String))数据的更多相关文章
- Android 利用SharedPreferences保存与删除 用户登录数据
创建SharedPreferences对象: SharedPreferences sharedPreferences = context.getSharedPreferences("user ...
- 使用STL map 用 string 做索引 插入删除数据
1.代码 #include <map> #include <string> #include <stdio.h> #include <vector> # ...
- java把类似a=1&b=2&c=3的String类型数据转成map集合
public static Map<String, Object> transStringToMap(String mapString, String separator, String ...
- SharedPreferences保存数据
1.使用SharedPreferences保存数据方法如下: //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= ...
- 利用H5 FormData 实现表单中多图上传(可带其他如String类型数据)
本篇的具体思路来源于右侧网址:http://blog.csdn.net/qq_19551571/article/details/49977983 本篇代码有所修改,请具体区分. 本篇使用的是 form ...
- FastJSON 简介及其Map/JSON/String 互转
在日志解析,前后端数据传输交互中,经常会遇到 String 与 map.json.xml 等格式相互转换与解析的场景,其中 json 基本成为了跨语言.跨前后端的事实上的标准数据交互格式.应该来说各个 ...
- List<Map<String,String>>操作(遍历,比较)
1.List<Map<String,String>>的遍历: Map<String,String> map = new HashMap<String, Str ...
- Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什么意思
//获得map的迭代器,用作遍历map中的每一个键值对Iterator是迭代器,map之前应该定义过,姑且认为是HashMap.<Entry<String,String>>表示 ...
- HDU 1113 Word Amalgamation (map 容器 + string容器)
http://acm.hdu.edu.cn/showproblem.php?pid=1113 Problem Description In millions of newspapers across ...
随机推荐
- Java基础知识强化之集合框架笔记57:Map集合之HashMap集合(HashMap<Student,String>)的案例
1. HashMap集合(HashMap<Student,String>)的案例 HashMap<Student,String>键:Student 要求:如果两个对象 ...
- Nginx高并发配置思路(轻松应对1万并发量)
测试机器为腾讯云服务器1核1G内存,swap分区2G,停用除SSH外的所有服务,仅保留nginx,优化思路主要包括两个层面:系统层面+nginx层面. 一.系统层面 1.调整同时打开文件数量 ulim ...
- Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致
Controller里写自己需要的Action,参数的名字必须和路由设置的参数名一致,如果参数不一致,传过去为null
- 触发器-Trigger
--触发器的实例: Create Table Student( --学生表 StudentID int primary key, --学号 ...
- 通过C#去调用C++编写的DLL
这个问题缠了我2个小时才弄出来,其实很简单.当对方提供一个dll给你使用时,你需要去了解这个dll 是由什么语言写的,怎么编译的,看它的编译类型.这样即使在没有头绪时,你可以先尝使用一些比较热门的编译 ...
- SHELL:Find Memory Usage In Linux (统计每个程序内存使用情况)
转载一个shell统计linux系统中每个程序的内存使用情况,因为内存结构非常复杂,不一定100%精确,此shell可以在Ghub上下载. [root@db231 ~]# ./memstat.sh P ...
- Linux如何查找大文件或目录总结-1127
原帖地址:http://www.cnblogs.com/kerrycode/p/4391859.html 谢谢潇湘隐者,谢谢老大 在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在 ...
- MySQL常见问题汇总(原创)
本文记录了使用Mysql时遇到的问题,持续更新中... 1.在windows命令行下登录mysql时报错: C:\Program Files\MySQL\MySQL Server 5.0\bin> ...
- .NET中的委托——摘自MSDN
封装一个方法,该方法只有一个参数并且不返回值. 命名空间: System程序集: mscorlib(在 mscorlib.dll 中) 语法 C# public delegate void ...
- html5 + css3 + zepto.js实现的微信广告宣传页
最新学习html5 + css3, 参考微信的一个推广页写出一个实例巩固自己知识,自己已经将原实例打包到自己博客文件当中,但是不知道如何提供下载,如有需要的朋友可以联系我qq309666726