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());
    }
}
时间: 2024-08-18 17:24:59

Android保存ArrayList至SharedPreferences的相关文章

android中保存一个ArrayList到SharedPreferences的方法

保存: public static boolean saveArray() { SharedPrefernces sp=SharedPrefernces.getDefaultSharedPrefernces(this); SharedPrefernces.Editor mEdit1= sp.edit(); mEdit1.putInt("Status_size",sKey.size()); /*sKey is an array*/ for(int i=0;i<sKey.size()

android 保存 用户名和密码 设置等应用信息优化

1.传统的保存用户名,密码方式 SharedPreferences Editor editor = shareReference.edit(); editor.putString(KEY_NAME,"username_value"); 通过这样的方法,能够基本满足需求,比如有用户名,那么就Editor.putString存放就好. 但是这样的方法有一些弊端: (1)在存放一些集合信息,存储ArrayList就不合适 (2)如果针对用户,新增加了很多熟悉,比如性别,头像等信息,那么需要一

【Android数据存储】SharedPreferences

1.概述 SharedPreferences 类提供了一个通用框架,以便您能够保存和检索原始数据类型的永久性键值对. 您可以使用 SharedPreferences 来保存任何原始数据:布尔值.浮点值.整型值.长整型和字符串. 此数据将跨多个用户会话永久保留(即使您的应用已终止亦如此). 要获取应用的 SharedPreferences 对象,请使用以下两个方法之一: getSharedPreferences() - 如果您需要多个按名称(使用第一个参数指定)识别的首选项文件,请使用此方法. g

Android开发学习笔记-SharedPreferences的用法

SharedPreferences介绍: 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息.SharedPreferences正是Android中用于实现这中存储方式的技术. SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据.SharedPreferences只能保存简单类型的数据,例

Android 存储文件方式之一---SharedPreferences 内容提供者,以xml 的方式进行数据 存储。是一种轻量级的文件数据存储

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 //UI界面的布局 文件<br><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"

Android数据存储-通过SharedPreferences实现记住密码的操作

在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过SharedPreferences实现记住密码的操作 一.首先:介绍下什么是SharedPreferences? SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置. 二.介绍了SharedPreferences,我们将通过记住SharedPrefe

Android简单数据存储SharedPreferences

SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和String)存储在应用程序的私有目录下(data/data/包名/shared_prefs/)自己定义的xml文件中. 1)保存数据 //获得SharedPreferences对象 SharedPreferences settings = this.getSharedPreferences("shar

Android 自定义ToggleButton+用SharedPreferences保存用户配置

布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@dr

Android - 保存用户首次使用状态(SharedPreferences)

保存用户首次使用状态(SharedPreferences) 本文地址: http://blog.csdn.net/caroline_wendy 用户首次登陆时, 可能需要用户教育, 讲解界面操作, 但是不应该在以后的登陆中, 继续显示, 则需要记录用户的登陆状态; 可以使用SharedPreferences进行记录. 在库中, 可以使用封装的PreferenceUtils类库, 使用方法如下: boolean hasShown = PreferenceUtils.get(this, FIRST_