SharedPreferences存储是Android三种主流数据存储技术之一。SharedPreferences使用键值对的方式来存储数据,也就是说,每当保存一条数据的时候,就需要给这条数据提供一个对应的键,这样在取出数据时就可以通过该键把相应的数据取出来。
1.将数据存储到SharedPreferences中
要想使用SharedPreferences存储数据,我们首先得先获取一个SharedPreferences对象,Android主要提供了3种方法得到该SharedPreferences对象:
(1)Context类中的getSharedPreferences()方法
该方法接受两个参数,一个是文件名,如果该文件不存在则会创建一个。另一个用来指定操作模式,目前只有MODE_PRIVATE一种可选,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写操作。
(2)Activity类中的getPreferences()方法
这个方法只接收一个参数,即MODE_PRIVATE操作模式,因为使用这种方法会自动将当前活动的类名作为SharedPreferences的文件名。
(3)PreferenceManager类中的getDefaultSharedPreferences()方法
该方法是一个静态方法,只接收一个Context参数,它自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。
通过上面三种方法都可以得到一个SharedPreferences对象,在得到SharedPreferences对象之后就可以开始向SharedPreferences文件中存储数据了,主要步骤如下:
1.调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象。
2.向SharedPreferences.Editor对象中添加数据。
3.调用apply()方法将添加的数据提交。
过程很简单,下面通过代码来理解:
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","TOM");
editor.putInt("age",18);
editor.putBoolean("married",true);
editor.apply();
SharedPreferences文件存储在/data/data/<package name>/shared_prefs/目录下。
2.从SharedPreferences中读取数据
读取数据的步骤比写入数据还简单,直接上代码:
SharedPreferences content = getSharedPreferences("data",MODE_PRIVATE);
String name = content.getString("name","");
int age = content.getInt("age",0);
boolean married = content.getboolean("married",false);
读取数据只需要先获得SharedPreferences对象,然后通过一系列get()方法就能对数据进行读取了,get()方法第一个参数是键,通过该键获取对应的数据,第二个参数是默认值,表示键找不到对应的值时就返回该默认值。