做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。

SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。

使用SharedPreferences保存key-value对的步骤如下:

  (1)使用Activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。

  (2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。

  (3)通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法。

  (4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。

具体代码的书写流程为:

A、存放数据信息

1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、让setting处于编辑状态

SharedPreferences.Editor editor = settings.edit();

3、存放数据

editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);

4、完成提交

editor.commit();

B、读取数据信息

1、获取Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、取出数据

String name = settings.getString(“name”,”默认值”);
String url = setting.getString(“URL”,”default”);

以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer /<package name>/shared_prefs/setting.xml

主要代码 具体如下(仅供参考):

在onCreate方法中调用restorePrefs()方法:

//读取     功能的实现    private void restorePrefs() {  // TODO Auto-generated method stub     //SharedPreferences是一种轻量级的数据存储方式.是以键值对来存储应用程序的     //配置信息的一种方式,它只能存储基本数据类型。     //声明一个优先级设置 类型 settings,载入配置文件  SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);  //使用getXXX函数从优先级设置读取不同类型的内容 得到优先级设置参数的内容  String pref_height = settings.getString(PREF_HEIGHT, "");  //此一句为唤醒记忆语句   field_height.setText(pref_height);   field_weight.requestFocus();//设置焦点字段 到“体重”字段上 用户只需直接输入体重数字就可以了 }       //存储    在Activity每次变暗,也就是离开当前屏幕时,记住设置的身高值     即 存储优先级设置    protected void onPause()    {     super.onPause();     Log.v("BMI", "onPause1");     //获得SharedPreferences对象     SharedPreferences settings = getPreferences(BMI.MODE_PRIVATE);     //获得SharedPreferences.Editor     SharedPreferences.Editor editor = settings.edit();     //保存组件的值   为优先级设置填写不同类型的内容     //用"field_height"界面组件标识符来取得身高的字符串 然后保存到PREF_HEIGHT所代表的优先级设置参数中     editor.putString(PREF_HEIGHT, field_height.getText().toString());     //提交保存的结果   将改变写到系统中     editor.commit();    }


更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. WindowManager与窗口管理机制
  5. Android高手进阶教程(二十八)之---Android(安卓)ViewPager控件的
  6. Android内存优化(使用SparseArray和ArrayMap代替HashMap)
  7. Android中如何通过程序打开或关闭GPS
  8. Binder 浅出深入 -- 你真的会用 binder?
  9. android studio 3.4.1 版 NDK 自动编译产生第三方.so 库(一)

随机推荐

  1. [Android(安卓)Pro] 完美Android(安卓)Cu
  2. Android怎么让RadioButton图片居中显示
  3. 疯狂android讲义学习总结---toggle与swit
  4. 在CentOS下搭建Android(安卓)开发环境
  5. Android(安卓)NDK带来什么
  6. Android实现插件化(热加载)和插件加密
  7. Android——体系架构 +四层
  8. 如何导入android中的sample例子到eclipse
  9. 系出名门Android(5) - 控件(View)之TextV
  10. 向模拟器发短信打电话的方法