SharedPreferences(偏好设置)
一、什么是偏好设置
偏好设置的本质,是使用xml文件保存数据。该文件一般保存在data/data/应用程序包名/shared_prefs/文件夹
偏好设置一般用来保存用户信息,用户设置等数据量较小的数据。
SharedPreference提供了一种以键值对的形式保存并读取持久数据。所以仅仅需要像使用Map一样使用偏好设置即可。偏好设置数据是应用程序私有的,仅仅应用程序本身可以访问。
二、如何用SharedPreferences设置保存数据
1.在Android中用SharedPreferences接口的对象,实现偏好设置。使用ContextWrapper类的定义的方法:getSharedPreferences()即可获取SharedPreferences接口的对象。
SharedPreferences sp = getSharedPreferences(name,mode);
String name = "user-name";
int mode = MODE_PRIVATE;
其中第一个参数是文件名,就是最后在data/data....下保存的xml文件的文件名字。例如,user-name.xml
第二个参数是权限
2.需要用Editor的put()方法写入数据。
Editor editor = sp.edit();
editor.putString("user_name", userName);
editor.putInt("user_age", userAge);
editor.putString("user_gender", userGender);
3.调用Editor的commit()方法提交,以完成写入过程。
editor.commit();
三、读取偏好设置
获取SharedPreferences对象之后,直接调用get系列方法即可获取数据
SharedPreferences sp = getSharedPreferences("user-name", MODE_PRIVATE);
String userName = sp.getString("name", null);
String userGender = sp.getString("gender", "男");
int userAge = sp.getInt("age", -1);
--------------------------
偏好设置的数据会以xml的形式,,保存在data/data/应用程序包名/shared_prefs/文件夹下
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
- <map>
<string name="user_gender">男</string>
<string name="user_name">liying</string>
<int name="user_age" value="23" />
</map>
注意:
偏好设置是固定保存在那样一个文件夹里的,偏好设置保存数据,对于软件来说是不可靠的,因为当删除的时候,软件不知道。