Android保存ArrayList至SharedPreferences
保存ArrayList至SharedPreferences 
其中ArrayList中每个元素为String
List<String> environmentList = new ArrayList<String>();
SharedPreferences.Editor editor = getSharedPreferences("EnvironDataList", MODE_PRIVATE).edit();
editor.putInt("EnvironNums", environmentList.size());
for (int i = 0; i < environmentList.size(); i++)
{
    editor.putString("item_"+i, environmentList.get(i));
}
editor.commit();对应的取出操作为:
List<String> environmentList = new ArrayList<String>();
SharedPreferences preferDataList = getSharedPreferences("EnvironDataList", MODE_PRIVATE);
int environNums = preferDataList.getInt("EnvironNums", 0);
for (int i = 0; i < environNums; i++)
{
    String environItem = preferDataList.getString("item_"+i, null);
    environmentList.add(environItem);
}保存ArrayList至SharedPreferences,其中list的每个元素为自定义对象 
1 首先将自定义对象序列化
public class CoordinateAlterSample implements Serializable {
    private double x;
    private double y;
    private String name;
    public double getX() {
        return x;
    }
    public void setX(double x) {
        this.x = x;
    }
    public double getY() {
        return y;
    }
    public void setY(double y) {
        this.y = y;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}其次,将list转为json,即可保存到SharedPreferences中
List<CoordinateAlterSample> alterSamples = new ArrayList<CoordinateAlterSample>();
SharedPreferences.Editor editor = getSharedPreferences("AlterSamplesList", MODE_PRIVATE).edit();
Gson gson = new Gson();
String json = gson.toJson(alterSamples);
Log.d(TAG, "saved json is "+ json);
editor.putString("alterSampleJson", json);
editor.commit();对应的取出操作为:
SharedPreferences preferences = getSharedPreferences("AlterSamplesList", MODE_PRIVATE);
String json = preferences.getString("alterSampleJson", null);
if (json != null)
{
    Gson gson = new Gson();
    Type type = new TypeToken<List<CoordinateAlterSample>>(){}.getType();
    List<CoordinateAlterSample> alterSamples = new ArrayList<CoordinateAlterSample>();
    alterSamples = gson.fromJson(json, type);
    for(int i = 0; i < alterSamples.size(); i++)
    {
        Log.d(TAG, alterSamples.get(i).getName()+":" + alterSamples.get(i).getX() + "," + alterSamples.get(i).getY());
    }
}Android保存ArrayList至SharedPreferences的更多相关文章
- Android数据存储-通过SharedPreferences实现记住密码的操作
		在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ... 
- Android数据存储之sharedpreferences与Content Provider
		android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ... 
- Android开发学习笔记-SharedPreferences的用法
		SharedPreferences介绍: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等 ... 
- Android数据储存之SharedPreferences总结
		写在前面:本文是我参考李刚老师的<疯狂Android讲义>以及API所写的读书笔记,在此表示感谢,本人小白,如有错误敬请指教. SharedPreferences的使用背景: 有时候,应用 ... 
- Android简单数据存储SharedPreferences
		SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和St ... 
- android中保存一个ArrayList到SharedPreferences的方法
		保存: public static boolean saveArray() { SharedPrefernces sp=SharedPrefernces.getDefaultSharedPrefern ... 
- Android 自定义ToggleButton+用SharedPreferences保存用户配置
		布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi ... 
- 黎活明8天快速掌握android视频教程--16_采用SharedPreferences保存用户偏好设置参数
		SharedPreferences保存的数据是xml格式,也是存在数据保存的下面四种权限: 我们来看看 我们来看看具体的业务操作类: /** * 文件名:SharedPrecences.java * ... 
- Android保存之SharedPreferences
		Android中一共有四种存储方式: SharedPreferences 为其中的一种,具体还是看代码: package com.wyl.preferencetest; import android. ... 
随机推荐
- 遍历collection
			链接 遍历NSArray 正向遍历 for (id object in array) 反向遍历 for (id object in [array reverseObjectEnumerator]) 如 ... 
- CSS 遗漏点
			link属性:链接的颜色(如果改成白色什么都看不见) alink属性:active点击之后的链接的颜色 vlink属性:visited点击之后的颜色 bgcolor属性:背景颜色 word-break ... 
- 如何处理Android Studio 上面关于 update 和 commit 小箭头的消失
			问题: android studio 在关联 SVN 或者 git 服务后,会在工具栏出现 update 和 commit 小箭头 如图: 但是,有时你打开工程的时候,发现这两个小箭头却消失不见了 如 ... 
- mysql java Cannot find the driver in the classpath!
			确保你的mysql-connector-java有没有配置好, 如何配置: 从oracle上把mysql-connector-java下下来放到java_home里面的extensions里面,然后在 ... 
- django tmeplate 循环基数
			{% for item in item_list %} {{ forloop.counter }} {# starting index 1 #} {{ forloop.counter0 }} {# s ... 
- JQuery实现当鼠标停留在某区域3秒后执行
			<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ... 
- Spring的IOC逐层深入——依赖注入的两种实现类型
			构造器注入 构造器注入,即通过构造函数完成依赖关系的设定.我们看一下spring的配置文件: <?xml version="1.0" encoding="UTF-8 ... 
- win环境变量立即生效
			执行 set PATH=C: 新打开的cmd窗口就立即生效了. 
- git之一
			1.Git是什么Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 ... 
- jsp学习笔记一
			page属性 定义JSP文件中的全局属性. 实例: <%@ page language="java" contentType="text/html; charset ... 
