SharedPreferences的方法与使用

您所在的位置:网站首页 sharedpreferences保存文件的路径 SharedPreferences的方法与使用

SharedPreferences的方法与使用

2023-11-13 18:48| 来源: 网络整理| 查看: 265

SharedPreferences是Android的一个轻量级存储工具,它采用的存储结构是Key-Value的键值对方式,类似于Java的Properties,二者都是把Key-Value的键值对保存在配置文件中。不同的是,Properties的文件内容形如Key=Value,而SharedPreferences的存储介质是XML文件,且以XML标记保存键值对。保存共享参数键值对信息的文件路径为:/data/data/应用包名/shared_prefs/文件名.xml。下面是一个共享参数的XML文件例子:

share.png

基于XML格式的特点,共享参数主要用于如下场合: (1)简单且孤立的数据。若是复杂且相互关联的数据,则要保存于关系数据库。 (2)文本形式的数据。若是二进制数据,则要保存至文件。 (3)需要持久化存储的数据。App退出后再次启动时,之前保存的数据仍然有效。 实际开发中,共享参数经常存储的数据包括:App的个性化配置信息、用户使用App的行为信息、临时需要保存的片段信息等。

共享参数对数据的存储和读取操作类似于Map,也有存储数据的put方法,以及读取数据的get方法。调用getSharedPreferences方法可以获得共享参数实例,获取代码示例如下:

111.png

由以上代码可知,getSharedPreferences方法的第一个参数是文件名,填share表示共享参数的文件名是share.xml;第二个参数是操作模式,填MODE_PRIVATE表示私有模式。

往共享参数存储数据要借助于Editor类,保存数据的代码示例如下:

222.png

从共享参数读取数据相对简单,直接调用共享参数实例的get * * 方法即可读取键值,注意get**方法的第二个参数表示默认值,读取数据的代码示例如下:

333.png

SharedPreferences常用的属性和方法:

方法名称 描述 public abstract boolean contains (String key) 判断SharedPreferences是否包含特定key的数据 public abstract SharedPreferences.Editor edit () 返回一个Edit对象用于操作SharedPreferences public abstract Map getAll () 获取SharedPreferences数据里全部的key-value对 getXXX(String key,XXX defvlaue) 获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值

由于SharedPreference是一个接口,而且在这个接口里并没有提供写入数据和读取数据的能力。但是在其内部有一个Editor内部的接口,Edit这个接口有一系列的方法用于操作SharedPreference。

Editor接口的常用方法:

方法名称 描述 public abstract SharedPreferences.Editor clear () 清空SharedPreferences里所有的数据 public abstract boolean commit () 当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改 public abstract SharedPreferences.Editor putXXX (String key, boolean XXX) 向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、long、String等基本类型的值 public abstract SharedPreferences.Editor remove (String key) 删除SharedPreferences里指定key对应的数据项

SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,可以通过Context.getSharedPreferences(String name,int mode)来得到一个SharedPreferences实例;

name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data//shared_prefs下(这个面试常问到)

mode:是指定读写方式,其值有三种,分别为: Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读和写; Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读操作,但不能进行写操作; Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3