SharedPreferences介绍:

做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。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();
    }

转载地址url:http://blog.sina.com.cn/s/blog_7ab107b00100u78t.html

android中sharedPreferences的用法相关推荐

  1. Android 中SharedPreferences 使用

    Android 中SharedPreferences使用 一.SharedPreferences使用1 protected void onCreate(Bundle savedInstanceStat ...

  2. Android中Parcelable接口用法

    --  通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象.也可以将Parcel看成是一个流,通过writeToPa ...

  3. android 类型.this,Android中this的用法

    关于Android中this的用法解释 问题由来 由于很多同学在学习Android时候没有对Java有很深的了解,很多人都会对代码中各种各样的this产生疑惑. 以<第一行代码Android&g ...

  4. Android中am命令用法详解

    Android中am命令用法 位于frameworks/base/cmds/pm am命令作用:管理Activity usage: am [start|broadcast|instrument|pro ...

  5. Android中Parcelable接口用法 和 Serializable实现与Parcelabel实现的区别

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...

  6. android中SharedPreferences和PreferenceActivity的存取数据

    本文主要介绍SharedPreferences和PreferenceActivity的基础知识和用法. 主要资料来源于网络,包括但不限于: <Android之PreferenceActivity ...

  7. Android中对Handler用法的总结

    Android之Handler用法总结 方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用 ...

  8. Android中Sharedpreferences牵涉到跨进程时不能实时读取的问题

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/11271053 在做课程表应用时,由于要设置课前提醒的时间,我通过Sharedprefere ...

  9. android sharedpreferences 存储对象,android中SharedPreferences实现存储用户名功能

    1. 简介 SharedPreferences是一种轻型的数据存储方式,通过key-value键值对的方式将数据存储在xml文件中,常用于存储简单的配置信息. 2. 使用方式 2.1 获取Shared ...

最新文章

  1. docker本地仓库镜像
  2. Webpack中的sourcemap
  3. 调用Xvid编码器流程(基于xvid1.1.0)
  4. 老歌新唱--使用VB6开发的ActiveX实现.NET程序的混淆加密
  5. python读取print输出的内容_Python文件中将print的输出内容重定向到变量中
  6. 自动化监控:主动发现自动注册
  7. React-Native入门指南——第七篇动手写组件
  8. 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
  9. Debian和Ubuntu版本比较
  10. 10个屌炸天的设计网址导航带你嗨翻科技设计界 #精选前端开发设计素材
  11. jxt - 强结构文档数据表示协议
  12. iOS 1 到 iOS 10 ,我都快老了
  13. 极路由更新软件源的方法
  14. 基于JAVA口红专卖网站计算机毕业设计源码+数据库+lw文档+系统+部署
  15. 初学Java-----简单的猜数字小游戏
  16. WIN7双系统卸载与重装Ubuntu
  17. 2012IT公司校园招聘笔试面试题
  18. php html 字符串 转 数组 用于小程序转换
  19. Hadoop之——setfacl 设置访问控制列表异常
  20. 2016蓝桥杯报纸页数(C++C组)

热门文章

  1. 【直播回顾】URP中如何写Shader?
  2. Unity2018.1中文更新日志速览版
  3. OpenShift 4 - 用Buildah定制UBI容器镜像
  4. .net core精彩实例分享 -- 面向对象编程
  5. 用于存储过程的ASP.NET Core Blazor和EF Core原始SQL查询
  6. Web API——添加Swagger、SQL Server、日志记录、导出到Excel和Docker
  7. 斯坦福大学发布 2019 人工智能指数报告
  8. 实现机器学习的循序渐进指南系列汇总
  9. python有null吗_Python世界中, 有Java中那种 @NotNull 吗( JetBrains提供的 ) ?
  10. notepad可以运行python吗,notepad+中怎么设置直接运行python代码