SharedPreferences如何在android中实现数据存储

  介绍

本篇文章为大家展示了SharedPreferences如何在android中实现数据存储,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/数据/数据/& lt;包name>/shared_prefs目录下:

 SharedPreferences SharedPreferences=getSharedPreferences (“ljq" Context.MODE_PRIVATE);
  
  编辑器编辑=sharedPreferences.edit();//获取编辑器
  
  editor.putString (“name",“林计钦“);
  
  editor.putInt (“age", 24);
  
  editor.commit();//提交修改
  
  

生成的ljq。xml文件内容如下:

& lt;及# 63;xml version=& # 39; 1.0 & # 39;=& # 39;编码utf - 8 # 39;独立=& # 39;是的# 39;,# 63;比;      & lt; map>      & lt;字符串名称=皀ame"祝辞林计钦& lt;/string>      & lt; int name=癮ge"值=https://www.yisu.com/zixun/" 24 "/>      

因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(名称、模式)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

另外活动还提供了另一个getPreferences(模式)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。

<强>访问SharedPreferences中的数据

访问SharedPreferences中的数据代码如下:

 SharedPreferences SharedPreferences=getSharedPreferences (“ljq" Context.MODE_PRIVATE);//getString()第二个参数为缺省值,如果偏好中不存在该键,将返回缺省值
  
  字符串名称=sharedPreferences.getString (“name",““);
  
  int年龄=sharedPreferences.getInt (“age" 1); 

如果访问其他应用中的偏好,前提条件是:该偏好创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。

如:有个& lt;包name>为com.ljq。行动的应用使用下面语句创建了偏好。

getSharedPreferences (“ljq" Context.MODE_WORLD_READABLE);

其他应用要访问上面应用的偏好,首先需要创建上面应用的上下文,然后通过上下文访问偏好,访问时的偏好会在应用所在包下的shared_prefs目录找到偏好:

上下文otherAppsContext=createPackageContext (“com.ljq.action" Context.CONTEXT_IGNORE_SECURITY);
  
  SharedPreferences SharedPreferences=otherAppsContext.getSharedPreferences (“ljq" Context.MODE_WORLD_READABLE);
  
  字符串名称=sharedPreferences.getString (“name",““);
  
  int年龄=sharedPreferences.getInt (“age",0); 

如果不通过创建上下文访问其他应用的偏好,也可以以读xml文取件方式直接访问其他应用偏好对应的xml文件,如:

代码如下:
文件xmlFile=新文件(“/数据/数据/& lt;包name>/shared_prefs/itcast.xml");//& lt;包name>应替换成应用的包名

字符串。xml文件

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt; resources>   & lt;字符串名称=癶ello"祝辞Hello World, SpActivity ! & lt;/string>   & lt;字符串名称=癮pp_name"祝辞软件配置参数& lt;/string>   & lt;字符串名称=皀ame"祝辞姓名& lt;/string>   & lt;字符串名称=癮ge"祝辞年龄& lt;/string>   & lt;字符串名称=癰utton"祝辞保存设置& lt;/string>   & lt;字符串名称=皊howButton"祝辞显示& lt;/string>   & lt;/resources>

主要。xml布局文件

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   http://schemas.android.com/apk/res/android" & lt; LinearLayout xmlns: android=?;   android:取向=皏ertical"   android: layout_width=癴ill_parent"   android: layout_height=癴ill_parent"比;   & lt;使用   xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android: layout_width=皐rap_content"   android: layout_height=皐rap_content"比;   & lt; TextView android: layout_width=皐rap_content"   android: layout_height=皐rap_content"   android:文本=癅string/name"   android: textSize=?0 px"   android: id=癅 + id/nameLable"/比;   & lt; EditText android: layout_width=?0 px"   android: layout_height=皐rap_content"   android: layout_toRightOf=癅 id/nameLable"   android: layout_alignTop=癅 id/nameLable"   android: layout_marginLeft=?0 px"   android: id=癅 + id/name"/比;   & lt;/RelativeLayout>   & lt;使用   xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android: layout_width=皐rap_content"   android: layout_height=皐rap_content"比;   & lt; TextView android: layout_width=皐rap_content"   android: layout_height=皐rap_content"   android: textSize=?0 px"   android:文本=癅string/age"   android: id=癅 + id/ageLable"/比;   & lt; EditText android: layout_width=?0 px"   android: layout_height=皐rap_content"   android: layout_toRightOf=癅 id/ageLable"   android: layout_alignTop=癅 id/ageLable"   android: layout_marginLeft=?0 px"   android: id=癅 + id/age"/比;   & lt;/RelativeLayout>   & lt;使用   xmlns: android=癶ttp://schemas.android.com/apk/res/android"   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

SharedPreferences如何在android中实现数据存储