SharedPreferences概述
SharedPreferences是Android平台上一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了String,set,int,long,float,boolean六种数据类型。
使用SharedPreferences进行存储的数据是存放在一个XML文件中的,同时它的存储方式是是以key-value的形式,key对应着将要存储的数据的名称,value对应存储的值。
在第一篇的源码中,首先先声明静态变量
private static final String PREF_NAME = "MyPrefs";
private static final String SELECTED_OPTION_KEY = "selectedOption";
private static final String PREF_MODE = "MyGravity";
private static final String SELECTED_OPTION_KEY_GRAVITY = "selectedGravity";
private static final String PREFS_REEKBAR = "reekbar";
private static final String SEEK_BAR_SIZE_REEKBAR = "seekBarSize";
增加数据
在小球实例中,用到了两种不同的 SharedPreferences写法
使用Activity类的getSharedPreferences方法获取到 SharedPreferences 对象,并且在其中指定文件名和该文件的访问权限。在使用该方法时,如果该名称的文件不存在就创建爱你它,如果存在就直接打开
其中的第一个参数是文件名,第二个参数是访问权限,我们平常都会将其访问权限设置为private类型,以保护数据不被外界所访问
// 保存SeekBar的当前大小到SharedPreferences
SharedPreferences.Editor editor = getSharedPreferences(PREFS_REEKBAR,MODE_PRIVATE).edit();
editor.putInt(SEEK_BAR_SIZE_REEKBAR, progress);
editor.apply();
// 保存用户选择到SharedPreferences
//获取SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences(PREF_MODE, Context.MODE_PRIVATE);
//获取Editor对象的引用
SharedPreferences.Editor editor = sharedPreferences.edit();
//将获取过来的值放入文件
editor.putString(SELECTED_OPTION_KEY_GRAVITY,selectedGravity);
editor.apply();
editor类核心方法:
从editor的put方法可以看出SharedPreferences提供了string,set,int,long,float,boolean六种数据类型。(在小球实例中我们只用到了string和int)
存储数据的获取
读取数据可以通过获取SharedPreferences
对象,通过SharedPreferences
对象可以获取存储的数据值,第二个参数一般是个默认值,表示当获取数据的时候没有该key则返回一个默认值。
// 恢复用户最近的选择
SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
String lastSelectedOption = sharedPreferences.getString(SELECTED_OPTION_KEY, "No selection made");
// 恢复用户最近的选择
SharedPreferences sharedPreferences1 = getSharedPreferences(PREF_MODE, Context.MODE_PRIVATE);
String lastSelectedOption1 = sharedPreferences1.getString(SELECTED_OPTION_KEY_GRAVITY, "No selection made");
当然有输入输出就会有删除数据(但是在本次小球的例中没有用到)
//获取SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences(PREF_MODE,MODE_PRIVATE);
//获取Editor对象的引用
SharedPreferences.Editor editor = sharedPreferences.edit();
//将获取过来的值删除文件
editor.remove(SELECTED_OPTION_KEY_GRAVITY);
修改数据
修改数据跟增加数据类似,覆盖原来的数据即修改数据。
SharedPreferences.Editor editor = getSharedPreferences(PREFS_REEKBAR, MODE_PRIVATE).edit();
editor.putInt(SEEK_BAR_SIZE_REEKBAR, progress);
editor.apply();
清除数据
我们可以通过Editor
对象的clear方法来完成清楚数据
//获取SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
//获取Editor对象的引用
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
清除以后xml
文件并不会删除,但里面的数据都没了
标签:缓存,String,getSharedPreferences,MODE,Editor,SharedPreferences,android,editor From: https://blog.csdn.net/LIUCHANGSHUO/article/details/137106614