设为首页 加入收藏

TOP

数据存储与访问之——SharedPreferences(一)
2019-09-03 03:45:02 】 浏览:145
Tags:数据 存储 访问 SharedPreferences

  使用SharedPreferences(保存用户偏好参数)保存数据, 当我们的应用想要保存用户的一些偏好参数,比如是否自动登陆,是否记住账号密码,是否在Wifi下才能 联网等相关信息,如果使用数据库的话,显得有点大材小用了!我们把上面这些配置信息称为用户的偏好 设置,就是用户偏好的设置,而这些配置信息通常是保存在特定的文件中!比如windows使用ini文件, 而J2SE中使用properties属性文件与xml文件来保存软件的配置信息;而在Android中我们通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数!SharedPreferences也是使用xml文件, 然后类似于Map集合,使用键-值的形式来存储数据;我们只需要调用SharedPreferencesgetXxx(name), 就可以根据键获得对应的值!使用起来很方便!

 

  SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。实现SharedPreferences存储的步骤如下:

 

1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过apply()方法提交数据。

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-28,17:41:40。
作者By-----溺心与沉浮----博客园

SharedPreferences的使用

  SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现。使用Preference来存取数据,用到了SharedPreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor,这两个接口在android.content包中;

 1 1)写入数据:  2      //步骤1:创建一个SharedPreferences对象
 3      SharedPreferences sharedPreferences= getSharedPreferences("data",Context.MODE_PRIVATE);  4      //步骤2: 实例化SharedPreferences.Editor对象
 5      SharedPreferences.Editor editor = sharedPreferences.edit();  6      //步骤3:将获取过来的值放入文件
 7      editor.putString("name", “Tom”);  8      editor.putInt("age", 28);  9      editor.putBoolean("marrid",false); 10      //步骤4:提交 
11  editor.commit();(apply()) 12 
13  2)读取数据: 14      SharedPreferences sharedPreferences= getSharedPreferences("data", Context .MODE_PRIVATE); 15      String userId=sharedPreferences.getString("name",""); 16   
17 3)删除指定数据 18      editor.remove("name"); 19  editor.commit(); 20 
21 4)清空数据 22  editor.clear(); 23      editor.commit();(apply())

 

版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。2019-08-28,17:41:40。
作者By-----溺心与沉浮----博客园 

 

注意:如果在 Fragment 中使用SharedPreferences 时,需要放在onAttach(Activity activity)里面进行SharedPreferences的初始化,否则会报空指针 即 getActivity()会可能返回null

读写其他应用的SharedPreferences 步骤如下(未实践):
?1. 在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取;
?2. 创建其他应用程序对应的Context
?3. 使用其他程序的Context获取对应的SharedPreferences
?4. 如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致;

 1 * SharedPreferences数据的四种操作模式:  2      * 一、Context.MODE_PRIVATE  3      * 二、Context.MODE_APPEND  4      * 三、Context.MODE_WORLD_READABLE  5      * 四、Context.MODE_WORLD_WRITEABLE  6      *
 7      * Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容  8      * Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.  9      * Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. 10      *
11      * MODE_WORLD_READABLE:表示当前文件可以被其他应用读取. 12      * MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入 13      *
14      * 特别注意:出于安全性的考虑,MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE 在Android 4.2版本中已经被弃用

 

 1 try {  2 //这里的com.example.mpreferences 就是应用的包名
 3  Context mcontext = createPackageContext("com.example.mpreferences", CONTEXT_IGNORE_SECURITY);  4 
 5  SharedPreferences msharedpreferences = mcontext.getSharedPreferences("name_preference", MODE_PRIVATE);  6  int count = msharedpre
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android TitleBar推荐 下一篇Android四大组件之BroadcastRecei..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目