它是被所有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的方法

       

        如下是例子:

        AndroidStudy_SharePreferences