1、简介
SharedPreferences存储是一种轻量级的数据存储方式,它屏蔽了对底层文件的操作,通过为程序开发人员提供简单的编程接口,实现以简单的方式对数据进行永久保存。这种方式主要对少量的数据进行保存,比如应用程序的各种配置信息(是否打开音效、是否打开震动等等)、玩家游戏积分、应用主题等进行保存。
2、使用方法及步骤
2.1、获得SharedPreferences对象
SharedPreferences接口位于android.content包中,用于使用键值(key-value)对的方式来存储数据。该类主要用于boolean、float、int、long、String等基本类型。在应用程序结束后,数据仍旧会保存。数据以XML文件格式保存在Android手机系统下的”/data/data/<应用程序包名>/shared_prefs“目录中,该文件被称为SharedPreferences(共享的首选项)文件。
(1)使用getSharedPreferences()方法获取
如果需要多个使用名称来区分的SharedPreferences文件,则可以使用getSharedPreferences()方法获取
getSharedPreferences(String name,int mode)
name: 共享文件的名称,该文件为XML格式。对于使用同一个名称获得的多个SharedPreferences引用,其指向同一个对象。
mode: 用于指定访问权限,它的参数值可以是MODE_PRIVATE (表示只能被本应用程序读和写,其中写入的内容会覆盖原文件的内容)、MODE_MULTI_PROCESS(表示可以跨进程、跨应用读取)。
(2)使用getPreferences()方法获取
如果Activity仅需要一个SharedPreferences文件,则可以使用getPreferences()方法获取。因为只有一个文件,所以不需要提供名称。
getPreferences(int mode) // mode同上
2.2、向SharedPreferences文件存储数据
向SharedPreferences文件中存储数据的步骤为(1)、(2)、(3)。
(1)、调用SharedPreferences类的edit()方法获得SharedPreferences.Editor对象。可以使用下面代码获得私有类型的SharedPreferences.Editor对象。
SharedPreferences.Editor editor=getSharedPreferences("mr",MODE_PRIVATE).edit();
(2)、向SharedPreferences.Editor对象中添加数据。
editor.putString("username",username); //添加字符串数据
editor.putBoolean("status",false); //添加布尔型数据
editor.putInt("age","20"); //添加整型数据
(3)、使用commit()方法提交数据,从而完成数据存储操作。
editor.commit();
2.3、读取SharedPreferences文件中存储的数据
读取时主要使用SharedPreferences类的getXxx()方法。下面分别实现获取String、Boolean和int类型的值。(如果该key不存在,则返回默认defValue。)
SharedPreferences sp=getSharedPreferences("mr",MODE_PRIVATE);
String username =sp.getString("username","mr");
Boolean status =sp.getBoolean("status",false);
int age =sp.getInt("age",18);