原因:

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

最新文章

  1. 三周,用长轮询实现Chat并迁移到Azure测试
  2. Fullscreen API 全屏显示网页
  3. Genymotion常见问题整合与解决方案
  4. 10+ commonly using find command switches with example Unix/Linux
  5. PHP如何解决网站大流量与高并发的…
  6. tomcat配置sqlserver数据库
  7. Android 动画——Frame Animation与Tween Animation
  8. Redis事务管理
  9. ubuntu 卸载从源码安装的 emacs
  10. Flask入门之自定义过滤器(匹配器)
  11. Macbook pro从购买服务器到搭建服务器环境(2)
  12. MySQL Server8.0版本时出现Client does not support authentication protocol requested by server
  13. Materialized View模式
  14. MySQL--详细查询操作(单表记录查询、多表记录查询(连表查询)、子查询)
  15. guxh的python笔记五:面向对象
  16. Java知多少(78)Java向量(Vector)及其应用
  17. Java01-Java基本概念及JDK安装
  18. 我的第一个博客——Fragment遇到的问题
  19. 转载 IMP时数据库的IO性能监控,并提供IOPS的计算方法
  20. 列式存储hbase系统架构学习

热门文章

  1. Google Map API v2 番外篇 关于gps位置偏差及修正方法探讨
  2. 30种mysql优化sql语句查询的方法&lt;转&gt;
  3. Sliverlight linq中的数组筛选数据库中的数据
  4. IIS配置不正确可能导致“远程服务器返回错误: (404) 未找到&quot;错误一例。
  5. dispatchkeyevent的调用机制
  6. 1.redis.3.2 下载,安装、配置、使用 - 1
  7. 消除热块(hot block)
  8. oracle的购买价格研究
  9. 分享一个在PearOS里面的plank的配置文件
  10. 自己学习过程中关于以后有可能用到的技术的备份,微信广告滑屏组件 iSlider