SharedPreferences

 

偏好设定(SharedPreferences)Ÿ

   在程序中保存一些配置参数的时候我们经常使用SharedPreferences

Context.getSharedPreferences(String name,int mode)

该方法可以在/data/data/<package>/shared_pref/目录下创建一个以name命名的xml文件,mode文件为模式

SharedPreferences的四种操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
 
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.

Ÿ   存储偏好

调用edit()方法可以获取一个Editor对象,对数据进行存储,存储之后需要调用commit()保存到文件

复制代码
    public void save(View view) {
String name = nameET.getText().toString();
String address = addressET.getText().toString();
String phone = phoneET.getText().toString();
String age = ageET.getText().toString();

// 偏好设定,xml 文件保存在 shared_pref 目录下
// 获取SharedPreferences, 文件名不要指定扩展名
// SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
// 匿名方式,文件名和Activity名一致
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
Editor editor = preferences.edit(); // 获取编辑器,保证事务的原子性

try {
editor.putString("name", name);
editor.putString("address", address);
editor.putString("phone", phone);
editor.putInt("age", Integer.valueOf(age));
editor.commit(); // 提交数据, 保存到文件
Toast.makeText(getApplicationContext(), "保存成功", Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
editor.clear(); // 提交数据, 保存到文件
Toast.makeText(getApplicationContext(), "保存失败", Toast.LENGTH_SHORT).show();
}
}
复制代码

Ÿ   读取偏好

获得SharedPreferences之后调用getString()、getInt()等方法获取其中设置的值

Ÿ   在Activity中获取SharedPreferences

在Activity中可以调用getPreferences(int mode)方法获得一个SharedPreferences,文件名和Activity名一致

复制代码
    private void loadData() {
// 指定文件名
// SharedPreferences preferences = getSharedPreferences("config", MODE_PRIVATE);
// 匿名方式
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
String name = preferences.getString("name", "");
String address = preferences.getString("address", "");
String phone = preferences.getString("phone", "");
String age = String.valueOf(preferences.getInt("age", 20));
nameET.setText(name);
addressET.setText(address);
phoneET.setText(phone);
ageET.setText(age);
}
复制代码
原文地址:https://www.cnblogs.com/xgjblog/p/3866113.html