它是被所有Activity共享的,不能在应用程序包之外共享首选项。首选项是以一组“键/值”的形式存储。而它所支持的数据类型如下:
1. 布尔值
2. 浮点值
3. 整型值
4. 长整型值
5. 字符串值
它的使用方式如下:
1. 创建一个SharedPreferences对象的实例
2. 创建一个SharedPreferences.Editor来修改首选项内容
3. 提交修改
注意:如果想要支持特定的Activity,则需要指定获取私有模式的首选项,这样应用程序内的恰Activity是无法访问的。
如下是不同的方法调用首选项:
1. 获取Activity的私有首选项
preferences = getPreferences(MODE_PRIVATE);
代码片段9.1.1 Activity私有首选项获取
2. 获取应用程序的首选项
sharedPreferences = getSharedPreferences("sharedPreferences", MODE_PRIVATE);
代码片段9.1.2 应用程序首选项获取
注释:不管是私有首选项, 还是公用的首选项,都有文件存储模式一说,即,通过这些模式,可以对创建的Preferences文件进行不同的作业
1. Context.MODE_PRIVATE(0)
为默认模式,代表该文件为私有数据,只能被应用本身访问。在该模式下,如果写入文件,则会覆盖原有的文件内容。
2. Context.MODE_APPEND(32768)
追加模式,这个模式,它会检查文件是否存在,如果存在,则在该文件中追加内容,而不是覆盖。
3. Context.MODE_WORLD_READABLE(1)
表示当前文件可以被其他应用读取。
4. Context.MODE_WORLD_WRITEABLE(2)
表示当前文件可以被其他应用写入。
对于SharedPreferences,它包含了一些方法,通过这些方法,可以很容易的获取到存储的内容
方法 | 说明 |
SharedPreferences.contains() | 通过名称查看该首选项是否存在 |
SharedPreferences.edit() | 获取编辑器,主要用来存入信息 |
SharedPreferences.getAll() | 获取所有键值对 |
SharedPreferences.getBoolean() | 获取值为Boolean的某个首选项 |
SharedPreferences.getFloat() | 获取值为Float的某个首选项 |
SharedPreferences.getInt() | 获取值为Int的某个首选项 |
SharedPreferences.getLong() | 获取值为Long的某个首选项 |
SharedPreferences.getString() | 获取值为String的某个首选项 |
表9.1.1 SharedPreferences方法
通过SharedPreferences.edit()方法,我们可以获取编辑器,而编辑器的方法如下:
方法 | 说明 |
SharedPreferences.Editor.clear() | 移除所有首选项。注意:该操作首先进行,无论什么修改,之后才能进行、提交 |
SharedPreferences.Editor.remove() | 通过名称移除某个首选项。该操作的优先级如上 |
SharedPreferences.Editor.putBoolean() | 存入值为Boolean的首选项 |
SharedPreferences.Editor.putFloat() | 存入值为Float的首选项 |
SharedPreferences.Editor.putInt() | 存入值为Int的首选项 |
SharedPreferences.Editor.putLong() | 存入值为Long的首选项 |
SharedPreferences.Editor.putString() | 存入值为String的首选项 |
SharedPreferences.Editor.commit() | 提交此次编辑会话的所有更改 |
表9.1.2 SharedPreferences.Editor的方法
如下是例子: