当前位置:首页 > Android > 正文内容

Android SharedPreferences PreperenceScreen 偏好数据存取

jsc9年前 (2016-04-05)Android2911

SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,

1、Context.getSharedPreferences(String name,int mode)来得到一个指定name的SharedPreferences实例

2、PreferenceManager.getDefaultSharedPreferences(Context)来获取在同一个包名下的SharedPreferences实例

name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。一般这个文件存储在/data/data/<package name>/shared_prefs下(这个面试常问到)

context:为上下文对象



mode:是指定读写方式,其值有三种,分别为:

Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写

Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写

Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应用程序读写。


 

首先介绍一下它的 常用方法:

public abstract boolean contains (String key)     -----   判断SharedPreferences是否包含特定key的数据

public abstract SharedPreferences.Editor edit ()   -----  返回一个Edit对象用于操作SharedPreferences

public abstract Map<String, ?> getAll ()   ------   获取SharedPreferences数据里全部的key-value对象

getXXX(String key,XXX defvlaue)   ------   获取SharedPreferences数据指定key所对应的value,如果该key不存在,返回默认值defValue。其中XXX可以是boolean、float、int、long、String等基本类型的值
Editor接口的常用方法:

public abstract SharedPreferences.Editor clear ()   ----   清空SharedPreferences里所有的数据

public abstract boolean commit ()  -----   当Editor编辑完成后,调用该方法可以提交修改,而且必须要调用这个数据才修改

public abstract SharedPreferences.Editor putXXX (String key, boolean XXX) ----   向SharedPreferences存入指定的key对应的数据,其中XXX可以是boolean、float、int、long、String等基本类型的值

public abstract SharedPreferences.Editor remove (String key)  -----   删除SharedPreferences里指定key对应的数据项


写入数据到XML里 

Editor sharedata = getSharedPreferences("config", MODE_PRIVATE).edit();    
sharedata.putString("item","hello getSharedPreferences");    
sharedata.commit();

读取XML里数据

SharedPreferences sharedata = getSharedPreferences("config", 0);    
String data = sharedata.getString("item", null);

注:config为xml文件名

 

 最后我们想获取 preference.xml里偏好配置的值,只需要根据里面key就可以获取到

SharedPreferences sharedata = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);  
String list_entries = sharedata.getString("list_entries", "");  
String edittext_preference = sharedata.getString("edittext_preference", "");  
boolean child_checkbox_preference = sharedata.getBoolean("child_checkbox_preference", false);  
boolean parent_checkbox_preference = sharedata.getBoolean("parent_checkbox_preference", false);  
boolean checkbox = sharedata.getBoolean("checkbox", false);  
boolean next_screen_checkbox_preference = sharedata.getBoolean("next_screen_checkbox_preference", false);

 


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/61.html

分享给朋友:

“Android SharedPreferences PreperenceScreen 偏好数据存取 ” 的相关文章

安卓开发中Android消息机制详解

在Android程序运行中,线程之间或者线程内部进行信息交互时经常会使用到消息,如果我们熟悉这些基础的东西及其内部的原理,将会使我们的Android开发变的容易、可以更好地架构系统。在学习Android消息机制之前,我们先了解与消息有关的几个类:  1.Message  消息对象,顾名思义就是记录消...

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

在工作中又很多需求都不是android系统自带的控件可以达到效果的,内置的TabHost就是,只能达到简单的效果 ,所以这个时候就要自定义控件来达到效果:这个效果就是: 使用自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果。    &...

android悬浮窗口的实现

android悬浮窗口的实现

       当我们在手机上使用360安 全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可 见(多米音乐也有相关的和主界面交互的...

Android ImageView的scaleType属性与adjustViewBounds属性

Android ImageView的scaleType属性与adjustViewBounds属性

ImageView的scaleType的属性有好几种,分别是matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY android:sca...

修改keystore密码别名等

修改keystore密码别名等

之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是...

Fragment保持状态切换

Fragment保持状态切换

在使用Activity管理多个Fragment时,每次切换Fragment使用的是replace,结果导致出现xxx is not currently in the FragmentManager异常挂掉网上说使用replace切换会使被切换的Fragment给替换掉,从而被被切换的Fra...