5.Android数据保存策略之3--SharedPreference

一、SharedPreferences简介。

  1、SharedPreferences是一种轻型的存储方式,它的原理是基于xml文件存储key-value键值对数据,通常用来存储一些简单的配置信息。
  存储位置:/data/data/{包名}/shared_prefs 目录下。
  SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。

  2、SharedPreferences对象与SQLite数据库相比,更加的轻量级,不需要创建数据库,创建表,写SQL语句等一系列的操作。美中不足的是SharedPreferences只支持以下几种类型的数据:

  boolean、 int 、float、 long、String

  3、SharedPreferences本身是一个接口,程序无法直接创建它的实例,只能通过Context提供的getSharedPreferences(String name, int mode)来获取它的实例,该方法的第二个参数支持如下几个值:

  · Context.MODE_PRIVATE :只被本地程序读写。

  · Context.MODE_WORLD_READABLE :能被其他程序读。

  · Context.MODE_WORLD_WRITEABLE :能被其他程序读、写。

  4、SharedPreferences的常用方法如下:

  · boolean contains(String key) :判断SharedPreferences中是否包含特定key的数据。

  · abstract Map<String, ?> getAll() :获取全部的key-value键值对。

  · boolean getXxx(String key, xxx default) : 获取指定key对应的值,如果该key不存在,返回default值。

  还有一点就是,它也不支持条件查询等等,所以尽管SharedPreferences操作起来非常方便,但它也只能作为存储方式的一种补充,而无法完全替代SQLite数据库等其他数据存储方式。

二、Editor简介

  SharedPreferences本身没有提供写入数据的方法,而是通过SharedPreferences的对象调用edit()方法获取Editor对象来写入数据。Editor的常用方法如下:

  · clear() :清空SharedPreferences里所有数据。

  · putXxx(String key, xxx value) :向SharedPreferences中写入数据。

  · remove(String key) :删除SharedPreferences中指定key的值。

  · commit() :当Editor编辑完,该方法提交修改。

三. 案例

我们写一个测试程序
功能1:将文本框中的数据通过SharedPreference保存起来
功能2:在下次打开的时候,我们再读取出来,回显到文本框中

界面如下:

功能代码:

   //判断是否勾选了checkbook 如果勾选了 就将qq号和密码保存起来
boolean isChecked = cbx.isChecked();


if(isChecked){
    //说明勾选了

    //勾选之后   要将保存数据起来
    try {
        // 使用sharedPreference保存数据
            //config文件将会生成在应用的文件夹下 --- 一个xml格式的文件中
                //config ---文件名   Context.MODE_PRIVATE---模式0(私有)可以用“0”代替
        sp = getSharedPreferences("config", Context.MODE_PRIVATE);

        //通过edit()开启事务
        SharedPreferences.Editor editor = sp.edit();

        editor.putString("number",number);
        editor.putString("password",password);

        //提交事务  保存数据
        editor.commit();

        Toast.makeText(this,"勾选了,保存成功!", Toast.LENGTH_SHORT).show();
    }catch(Exception e){
        e.printStackTrace();
        Toast.makeText(this,"勾选了,没 保存成功!", Toast.LENGTH_SHORT).show();
    }
}else {
    //说明没有勾选
    Toast.makeText(this,"没勾选", Toast.LENGTH_SHORT).show();
}

测试运行:

在输入框中输入number:123 password:112 并勾选复选框,点击登录

可以看到在/data/data/{packagename}/shared_prefs目录下生成了一个名称为config.xml的文件(这个名称是在程序中设定的)

文档内容如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值