Android开发之数据存储SharedPreferences
来源:互联网 发布:app后端开发架构 java 编辑:程序博客网 时间:2024/05/07 23:27
SharedPreferences是一种轻型的数据存储方式,本质是基于XML文件存储Key-Value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储和修改是通过Editor对象实现。
获取SharedPreferences的两种方式:
- 调用Activity对象的getPreferences(int mode)方法
- 调用Context对象的getSharedPreferences(String name, int mode)方法
- 调用Context对象的getDefaultSharedPreferences(Context context)方法
1. 调用Activity对象的getPreferences(int mode)方法
通过此方法获得的SharedPreferences对象只能在该Activity中使用,在Activity中可以调用getPreferences(int mode)方法获得一个SharedPreferences,文件名和Activity名一致。
四种操作模式:
- Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,对应数字0;
- MODE_WORLD_READABLE:表示当前文件可以被其他应用读取,对应数字1;
- MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入,对应数字2;
2. 调用Context对象的getSharedPreferences(String name, int mode)方法
自定义偏好设置,通过此方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享。保存到SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);Editor editor=preferences.edit();String name="xixi";String age="22";editor.putString("name", name);editor.putString("age", age);editor.commit();从SharedPreferences:
SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);String name=preferences.getString("name", "defaultname");String age=preferences.getString("age", "0");
3. 调用Context对象的getDefaultSharedPreferences(Context context)方法
每个应用有一个默认的偏好文件preferences.xml,使用getDefaultSharedPreferences获取
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);System.out.println("set_location = "+preferences.getBoolean("if_set_location", false));Editor editor = preferences.edit();editor.putBoolean("if_set_location", false);editor.commit();"if_set_location"可能对应的是CheckBoxPreference或者其它,但是通用get***来获取值
<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="位置信息设置"> <CheckBoxPreference android:key="set_location" android:title="打开或关闭位置信息" android:summary="更改您的位置设置,打开或者关闭位置共享" android:defaultValue="true" /> <Preference android:key="set_sys_location" android:title="系统位置功能设置" android:summary="点击到系统设置页面打开或关闭GPS位置功能" /> </PreferenceCategory></PreferenceScreen>
SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
参考:http://samyou.iteye.com/blog/1190698
http://www.cnblogs.com/wisekingokok/archive/2011/09/16/2177833.html
- Android开发之数据存储SharedPreferences
- Android开发_数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android--数据存储之SharedPreferences
- android数据存储之SharedPreferences
- Android之数据存储SharedPreferences
- Android数据存储之SharedPreferences
- android数据存储之--------- SharedPreferences
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android----数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android数据存储之SharedPreferences
- Android之SharedPreferences数据存储
- NSDate和NSString的转换
- Access Violation
- HDU 1069 Monkey and Banana
- UVALive - 2911 Maximum
- Consignment VMI
- Android开发之数据存储SharedPreferences
- js用法
- 一张图看懂step/next等调试跳转区别
- 日历中NSDateFormatter中英文
- 如何使用好div盒子模型的margin和padding
- java web从零单排第十三期《struts2》OGNL上下文
- 【D3.js数据可视化系列教程】--(九)D3的数据类型
- java编程思想笔记--持有对象部分二
- kgdb调试注意事项