/*以下内容均摘自安卓开发者官网*/
存储选项
Android 为您提供了多种选项来保存永久性应用数据。您所选择的解决方案取决于您的特定需求,例如数据应该是应用的私有数据,还是可供其他应用(和用户)访问,以及您的数据需要多少空间等。
您的数据存储选项如下:
共享首选项 在键值对中存储私有原始数据。
内部存储 在设备内存中存储私有数据。
外部存储 在共享的外部存储中存储公共数据。
SQLite 数据库 在私有数据库中存储结构化数据。
网络连接 在网络中使用您自己的网络服务器存储数据。
今天学习的是共享首选项的用法。
SharedPreferences
类提供了一个通用框架,以便您能够保存和检索原始数据类型的永久性键值对。 您可以使用 SharedPreferences
来保存任何原始数据:布尔值、浮点值、整型值、长整型和字符串。 此数据将跨多个用户会话永久保留(即使您的应用已终止亦如此)。
要获取应用的 SharedPreferences
对象,请使用以下两个方法之一:
getSharedPreferences()
- 如果您需要多个按名称(使用第一个参数指定)识别的首选项文件,请使用此方法。getPreferences()
- 如果您只需要一个用于 Activity 的首选项文件,请使用此方法。 由于这将是用于 Activity 的唯一首选项文件,因此无需提供名称。
getPreferences()是Activity类的方法,有一个int型参数mode,返回值是SharedPreferences。
参数可以有以下几种:
MODE_PRIVATE :默认类型,生成的文件只能被调用的应用使用或者是共享的应用。
MODE_APPEND : 在已存在的文件末尾追加内容,不重写。
MODE_WORLD_READABLE :允许所有应用读取文件,不建议使用。
MODE_WORLD_WRITEABLE :允许所有应用写文件,不建议使用 。
MODE_MULTI_PROCESS :多进程共享数据,不建议使用。
SharedPreferences getSharedPreferences (String name, int mode)
getSharedPreferences()是ContextWrapper类的方法,ContextWrapper类继承自Context类。该方法有两个参数,name参数指定共享首选项文件名称,
mode参数和getPreferences方法参数用法相同。
要写入值:
- 调用
edit()
以获取SharedPreferences.Editor
。 - 使用
putBoolean()
和putString()
等方法添加值。 - 使用
commit()
提交新值
要读取值,请使用 getBoolean()
和 getString()
等 SharedPreferences
方法。
getString(String key , String default)方法有两个参数,第一个是要读数据的key值,第二个是数据不存在默认返回的值。
getBoolean(String key , boolean default)方法有两个参数,第一个是要读数据的key值,第二个是数据不存在时默认返回的值。
实例:
1.getPreferences用法:
没有使用editor.commit方法时,是不会初始化生成shared_prefs文件的同样对已经存在的shared_prefs文件也不会有任何修改的。
创建成功会相应生成如图所示的xml文件。文件内容是key-value格式。
2.getSharedPreferences用法
生成指定文件名的文件。
3.读取数据
读取数据成功,如果数据不存在,会按照第二个参数信息返回。