数据存储全方案之SharedPreferences
SharedPreferences存储
介绍
不同文件的存储方式,SharedPreferences是使用键值对的方式来存储数据的,也就是说,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。而且sharedPreferences还支持多种不同的数据类型存储,如果存储的数据类型是整型,那么读取出来的数据也是整型;如果存储的数据是一个字符串,那么读取出来的同样的是字符串。
将数据存储到SharedPreferences
想要使用其来存储数据,那么首先你需要获取到一个SharedPreferences 对象,在Android中提供3中方法用于得到SharedPreferences 对象。
getSharedPreferences()
此方法接受两个参数,第一个参数用于指定SharedPreferences文件的名称,如果指定的文件不存在则会创建一个,sharedPreferences文件都是存放在/data/data/<package name>/shared_prefs/
目录下。第二个参数用于指定操作模式,目前只有MODE_PRIVATE
一种模式可以选择,其他模式都已被Android废弃,表示只有当前的应用程序才可以对这个文件进行读写。
getPreferences()方法
这个方法和Context中的getSharedPreferences()方法很相似,不过它只接受一个操作模式的参数,因为使用这个方法时会自动将当前活动的雷鸣作为sharedPreferences的文件名。
getDefaultSharedPreferences()方法[强烈推荐]
这个是一个静态方法,它接受一个Context参数,并且自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件,得到了SharedPreferences对象之后,就可以开始向SharedPreferences文件中存储数据了,主要分为以下三个步骤:
- 调用SharedPreferences对象的edit()方法来获取一个SharedPreferences。Editor对象
- 向SharedPreferences.Editor对象中添加数据,使用
put<数据类型>()
方法。 - 调用
apply()
方法进行提交,本方法和commit()
方法有所不同,前者进行异步提交并且不返回值,后者是同步提交成功则返回true,失败则返回false。
private void setRemeber(){
SharedPreferences.Editor editor = getSharedPreferences("pwd",MODE_PRIVATE).edit();
if (helper.getCb_remeberPassWord().isChecked()){
editor.putBoolean("isRemeber",true);
}else{
editor.clear();
}
editor.apply();
}
从SharedPreferences中读取数据
从SharedPreferences文件中读取数据更加的简单。SharedPreferences对象中提供了一系列的get方法,用于对存储的数据进行读取,每种get方法都对应了SharedPreferences.Editor中的一种put方法。
private void initEditData (){
SharedPreferences sharedPreferences = getSharedPreferences("pwd",MODE_PRIVATE);
boolean isRemeber = sharedPreferences.getBoolean("isRemeber",false);
if (isRemeber){
SPUtils spUtils = new SPUtils(getApplicationContext());
String sp_UserName = spUtils.getUserName();
String sp_Pwd = spUtils.getPwd();
helper.getEt_userName().setText(sp_UserName);
helper.getEt_passWord().setText(sp_Pwd);
}
}
本文版权归属:极束の梦想
转载文章时,请保留本文的版权内容。
作者:Seale
同时也欢迎各位大大交换友链。