简介
SharedPreferences 使用键值对的方式来存储数据,在存储数据的时候需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把相应的值取出来;
SharedPreferences 还支持多种不同的数据类型存储,即存储的类型是整型,取出来的也是整型,存储的时候是字符串,取出来的时候也是字符串;
使用方法
想要使用此方法去存储数据,必须先要获取到 SharedPreferences 对象,Android 中提供了 3 中方法去得到这个对象。
- Context 类中的 getSharedPreferences() 方法
该方法接受两个参数,第一个参数指定 SharedPreferences 文件的名称,文件存储在 data/data/<package_name>/shared_prefs/ 目录下;
第二个参数用于指定操作模式,目前只提供 MODE_PRIVATE 一中模式,也是默认模式,表示只有当前的应用程序才可以对这个文件进行读写;
- Activity 类中的 getPreferences() 方法
该方法只接受一个参数,使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。
- PreferenceManager 类中的 getDefaultSharedPreferences() 方法
该方法为静态方法,接受 Context 的参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。
存储数据
-
调用 SharedPreferences 对象的 edit() 方法来获取一个 SharedPreferences.Editor 对象;
-
向 SharedPreferences.Editor 对象中添加数据,比如添加 bool 类型的数据就使用 putBoolean() 方法;
-
调用 apply() 方法将添加的数据提交,完成数据存储;
关键代码示例:
SharedPreferences.Editor editor = getSharedPreferences("data",
MODE_PRIVATE).edit();
editor.putString("name", "Tom");
editor.putInt("age", 28);
editor.putBoolean("married", false);
editor.apply();
读取数据
直接调用 SharedPreferences 对象的 get 方法来获取相应的值;
关键代码示例:
SharedPreferences preferences = getSharedPreferences("data",
MODE_PRIVATE);
String name = preferences.getString("name", "");
int age = preferences.getInt("age", 0);
boolean married = preferences.getBoolean("married", true);