Preference提供了一种轻量级的数据存取方法,主要是数据比较少的配置信息。它以键值对的方式将数据保存在一个XML配置文件中。

  使用Preference方式来存取数据,用到了SharedPreferences接口和SharedPreferences的一个内部接口SharedPreferences.Editor。

  调用Context.getSharedPreferences(String name, int mode)得到SharedPreferences接口,name是XML文件名称,mode是打开方式(MODE_PRIVATE(私有),MODE_WORLD_READABLE(可读),MODE_WORLD_WRITEABLE(可写))。

  SharePreferences提供了获取不同类型数据的方法,getT(String key, T defValue)(这里T代表数据类型),key为键名称,defValue为默认值。调用SharePreferences的edit()方法来获得SharedPreferences.Editor内部接口,该接口提供提供了保存数据的方法,putT(String key, T value),然后调用commit()方法将数据保存。

SharePreferences接口的常用方法如下:

方法名称 方法描述
edit() 返回SharedPreferences的内部接口SharedPreferences.Editor
cantains(String key) 判断是否包含该键值
getAll() 返回所有配置信息Map
getT(String key, T defValue) 获取一个T值,T为基本类型,T可被替换为“Boolean”,“Float”,“Int”,“Long”或“String”。

SharePreferences.Editor接口的常用方法如下:

方法名称 方法描述
clear() 清除所有值
commit() 保存
getAll() 返回所有配置信息Map
putT(String key, T value) 保存一个T值
remove(String key) 删除该键对应的值

EG:

//获取值
String programset = "PROGRAMSET";
SharedPreferences pre = getContext().getSharedPreferences(programset,MODE_WORLD_READABLE);
String message = pre.getString("MESSAGE",""); //保存值
String programset = "PROGRAMSET";
SharedPreferences.Editor editor = getContext().getSharedPreferences(programset,MODE_WORLD_READABLE).edit();
editor.putString("MESSAGE","HELLO WORLD");
deitor.commit();

被保存的数据作文XML文件被保存到了/data/data/package/shared_prefs/下面了。

Android存储机制之Preference的更多相关文章

  1. (转)Android消息处理机制(Handler、Looper、MessageQueue与Message)

    转自 http://www.cnblogs.com/angeldevil/p/3340644.html Android消息处理机制(Handler.Looper.MessageQueue与Messag ...

  2. Android消息机制

    每一个Android应用在启动的时候都会创建一个线程,这个线程被称为主线程或者UI线程,Android应用的所有操作默认都会运行在这个线程中. 但是当我们想要进行数据请求,图片下载,或者其他耗时操作时 ...

  3. 理解Android安全机制

    本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案. 1.Android系统架构 Android采用分层的系统 ...

  4. 【Android 开发】: Android 消息处理机制之一: Handler 与 Message

    最近几讲内容,我们学习了Android中关于多线程的一些知识,上一讲我们讲解了异步任务 AsyncTask 的操作,Android中还提供了其他的线程操作,如Handler Message Messa ...

  5. ios开发之数据的持久化存储机制

    IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式. 对于数据的持久化存储,ios中一般提供了4种不同的机制. 1.属性列表 2.对象归档 3.数据库存储(SQLite3 ...

  6. Android架构分析之Android消息处理机制(二)

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android版本号:4.4.2 在上一篇文章中我们看了一个使用Handler处理Message消息的样例,本文我们 ...

  7. HTML5分析实战Web存储机制(Web Storage)

    Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据serve ...

  8. Android开发之漫漫长途 ⅥI——Android消息机制(Looper Handler MessageQueue Message)

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  9. Android群英传笔记——第七章:Android动画机制和使用技巧

    Android群英传笔记--第七章:Android动画机制和使用技巧 想来,最 近忙的不可开交,都把看书给冷落了,还有好几本没有看完呢,速度得加快了 今天看了第七章,Android动画效果一直是人家中 ...

随机推荐

  1. MySQL配置文件my.cnf参数优化和中文详解

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  2. 2000 Asia shanghai Dance Dance Revolution

    思路:dp[i][x][y]表示第i个序列中,右脚在x位置,左脚在y位置时,其最小花费. 那么dp[i][x][y]=min(dp[i-1][a[i]][y]+cost[a[i]][x],dp[i-1 ...

  3. Things make us different

    Don't just accumulate knowledge, apply it. You will never really know or understand something until ...

  4. Unity之定时调用

    1.Invoke(string methodName,float time) 在一定时间调用methodName函数 using UnityEngine; using System.Collectio ...

  5. DOM 1

    首先getAttribute  setAttribute只能被元素节点对象调用.(属性节点和文本节点调用不了) 我们可以通过一下三种方式得到元素: document.getElementById(); ...

  6. centos 6.5 安装lnmp(linux+nginx+mysql+php)

    参考:http://www.cnblogs.com/AloneSword/archive/2013/03/18/2966750.html (总结并简要) 一安装cmake wget -c http:/ ...

  7. JSP之错误信息提示

    MessageResource.properties配置文件: RegisterAction注册: package com.caiduping.action; import javax.servlet ...

  8. QA在网站建设中的作用

    在网站建设项目中,有一个团队负责产品测试并识别产品中的缺陷是很有意义的.问题在于,不应该只依赖这个团队来发现所有的缺陷,就像航空公司不能只依靠空乘人员确保飞机安全一样.这个观点的核心是一个简单的事实, ...

  9. HashSet和LinkedHashSet特点.

    1)::HashSet-------(内部为HashCode表数据结构)---(保证数据唯一,但不保证数据有序) 不对数据进行排序,只是通过hashCode和equal对数据进行相同判定,如果相同就不 ...

  10. C++ Maps 映射

    C++ Maps是一种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空 ...