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

Android SharedPreferences PreperenceScreen 偏好数据存取

jsc9年前 (2016-04-05)Android2920

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://www.jsc0.com/post/61.html

分享给朋友:

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

Android Location在GPS中的应用(一)

Android Location在GPS中的应用(一)

新建AndroidProject,注意选择Google APIs:  打开AndroidManifest.xml,在其中加入GPS使用权限: <uses-permission android:name="android.permission.ACCESS_COARSE_LO...

采用SharedPreferences保存用户偏好设置参数

采用SharedPreferences保存用户偏好设置参数-------------------------------------------------1.eclipse就是通过xml来保存用户的偏好设置-->window-->perfences-------------------...

制作一款Android APK管理器主要代码

Android APK管理器代码,主要就是两个列表,一个显示SD卡上面的APK文件的list,一个显示已经安装的app的list。1:获取SD卡上的APK安装文件后,要用代码读出APK里面的信息,如icon等,的主要代码如下:private void getUninatllApk...

android客户端和java服务端之间用socket来传输图片

一、从服务端向客户端发送图片:服务端的代码:import java.io.DataOutputStream;   import java.io.FileInputStream;   import java.io.IOExcep...

JAVA中使用JSON进行数据传递

最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作。其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。首先,在JA...

android 定时循环执行任务

一、执行循环的函数如下:private Handler handler = new Handler();         private Runnable&...