Android——使用SharedPreferences进行简单存储

使用SharedPreferences进行简单存储

        1、简介

        2、使用方法与步骤

        3、案例:模拟自动登录功能

        4、小分享

Android系统提供了多种数据存储方法。例如使用SharedPreferences进行简单存储、文件存储、SQLite数据库存储以及Content Provider共享数据等。在这里我们只来讲一下SharedPreferences。

1、简介

SharedPreferences存储是一种轻量级的数据存储方式,它屏蔽了对底层文件的操作,通过为程序开发人员提供简单的编程接口,实现以简单的方式对数据进行永久保存。这种方式主要对少量
的数据进行保存,比如应用程序的各种配置信息(是否打开音效、是否打开震动等等)、玩家游戏积分、应用主题等进行保存。

2、使用方法与步骤

2.1、获得SharedPreferences对象

SharedPreferences接口位于android.content包中,用于使用键值(key-value)对的方式来存储数据。该类主要用于boolean、float、int、long、String等基本类型。在应用程序结束后,数据仍旧会保存。数据以XML文件格式保存在Android手机系统下的”/data/data/<应用程序包名>/shared_prefs“目录中,该文件被称为SharedPreferences(共享的首选项)文件。

(1)使用getSharedPreferences()方法获取

如果需要多个使用名称来区分的SharedPreferences文件,则可以使用getSharedPreferences()方法获取

        getSharedPreferences(String name,int mode)

name: 共享文件的名称,该文件为XML格式。对于使用同一个名称获得的多个SharedPreferences引用,其指向同一个对象。

mode: 用于指定访问权限,它的参数值可以是MODE_PRIVATE (表示只能被本应用程序读和写,其中写入的内容会覆盖原文件的内容)、MODE_MULTI_PROCESS(表示可以跨进程、跨应用读取)。

(2)使用getPreferences()方法获取

如果Activity仅需要一个SharedPreferences文件,则可以使用getPreferences()方法获取。因为只有一个文件,所以不需要提供名称。

        getPreferences(int mode)    // mode同上

2.2、向SharedPreferences文件存储数据

 向SharedPreferences文件中存储数据的步骤为(1)、(2)、(3)。

(1)、调用SharedPreferences类的edit()方法获得SharedPreferences.Editor对象。可以使用下面代码获得私有类型的SharedPreferences.Editor对象。

        SharedPreferences.Editor  editor=getSharedPreferences("mr",MODE_PRIVATE).edit();

(2)、向SharedPreferences.Editor对象中添加数据。

       editor.putString("username",username);        //添加字符串数据
       editor.putBoolean("status",false);                  //添加布尔型数据
       editor.putInt("age","20");                                //添加整型数据

(3)、使用commit()方法提交数据,从而完成数据存储操作。

        editor.commit();

2.3、读取SharedPreferences文件中存储的数据

读取时主要使用SharedPreferences类的getXxx()方法。下面分别实现获取String、Boolean和int类型的值。(如果该key不存在,则返回默认defValue。)

        SharedPreferences  sp=getSharedPreferences("mr",MODE_PRIVATE);
        String username =sp.getString("username","mr");
        Boolean status =sp.getBoolean("status",false);
        int age =sp.getInt("age",18);

3、案例:模拟自动登录功能

除了activity_main布局外再创建一个布局second当作登录后的页面,同时创建一个Second.java文件。

activity_main布局(部分):

MainActivity完整代码:

 Second.java代码:

运行截图:

                                       

 

小分享:

在初步认识SharedPreferences后在一个项目中看到这样这样两句代码:

上面的变量声明是这样的 

debug的时候我神奇的发现aaa里面竟然有数据了

 

 这一家伙给我整纳闷了,这和我理解的不一样啊,不是先存储再读取吗,为什么现在没有存储就能读到里面的数据。然后我就开始找原因,经过我的反复推敲和搜寻,发现我忽略了一个细节,(如果该key不存在,则返回默认defValue。)就是这句话,然后恍然大悟。

        

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值