目录
什么是SharedPreference?
SharedPreference是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。
SharedPreference的特点
- 数据类型:支持基本数据类型,不支持自定义数据类型
- 存储:键值对方式存储
- 保存:保存到data/data/<package_name>/shared_prefs/中自定义的XML文件中
- 访问:默认情况下只能在APP内部访问
键值对方式是一种非结构化的存储方法,非结构化是指字段的存储不需要表与字段相互的关联关系,为单纯的Key-Value关系,非常简便轻量。
SharedPreference的使用
- 获取SharedPreference对象
- 将数据存入SharedPreference
- 从SharedPreference中读取数据
- 封装SharedPreference工具类
1.获取SharedPreference对象
方法 | 参数 | 作用 |
---|---|---|
PreferenceManager.getDefaultSharedPreferences(Context context) | context :上下文 | 创建以包名为前缀的XML文件 |
Activity.getSharedPreferences(String name,int mode) | 1.String name :文件名(无需后缀) 2.int mode :模式(如下4种) | 创建以name为文件名的XML文件 |
MODE_PRIVATE(只能该应用读写)
MODE_WORLD_READABLE(可以被其他应用读取,但不可写入)
MODE_WORLD_WRITEABLE(可被其他应用读写)
MODE_APPEND(检查文件是否存在,存在直接追加内容,不存在则直接创建)
获取SharedPreference对象:
SharedPreferences sharedpreferences = MainActivity.this.getSharedPreferences("macardo", MODE_PRIVATE);//创建名为macardo的XML文件
// SharedPreferences sharedpreferences =PreferenceManager.getDefaultSharedPreferences(MainActivity.this);//创建以包名为前缀的XML文件
2.将数据存入SharedPreference
方法 | 参数 | 作用 |
---|---|---|
SharedPreferences.edit() | 返回一个EditorImpl对象 | |
Editor.putXX(String key, int value) | 1.String key:键 2. int value:值 | 传入键值对形式数据 |
Editor.apply() | 将数据保存到磁盘中,异步保存(不会阻塞当前线程) | |
Editor.commit() | 将数据保存到磁盘中,同步保存 |
将数据存入SharedPreference:
private void initViews() {
mEtKey = findViewById(R.id.etKEY);
mEtValue = findViewById(R.id.etVALUE);
mBtnSave = findViewById(R.id.btnSave);
mBtnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//保存用户输入的键值对
String key = mEtKey.getText().toString().trim();
String value = mEtValue.getText().toString().trim();
SharedPreferences sharedpreferences = MainActivity.this.getSharedPreferences("macardo", MODE_PRIVATE);//创建名为macardo的XML文件
// SharedPreferences sharedpreferences =PreferenceManager.getDefaultSharedPreferences(MainActivity.this);//创建以包名为前缀的XML文件
SharedPreferences.Editor edito