android  SharedPreferences数据存储

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件进行保存。而对于Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:

SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "传智播客");
editor.putInt("age", 4);
editor.commit();//提交修改

生成的itcast.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">传智播客</string>
<int name="age" value="4" />
</map>

你可以在eclipse中通过window ---》show  views ----》other   ---》android ---》file  Exploler

在这个目录下找到:/data/data/<package name>/shared_prefs找到生成的itcast.xml文件

因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。

访问SharedPreferences中的数据代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);
//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);

如果访问其他应用中的Preference,前提条件是:该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。如:有个<package name>为cn.itcast.action的应用使用下面语句创建了preference。
getSharedPreferences("itcast", Context.MODE_WORLD_READABLE);
其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :
Context otherAppsContext = createPackageContext("cn.itcast.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("itcast", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);

如果不通过创建Context访问其他应用的preference,可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/itcast.xml”);//<package name>应替换成应用的包名

一下是创建SharedPreference对象,保存数据与删除数据:

1、创建SharedPreferences对象:

String spName = "SharedPreferences"; 
SharedPreferences dataBase; 
dataBase = getSharedPreferences(spName, 0);

2、创建保存方法: 
public void saveData() { 
  dataBase.edit().putString("NAME", userName.getText().toString()) 
    .putString("PASS", password.getText().toString()) 
    .commit(); 
}

3、创建删除方法:

public void clearData() { 
  dataBase.edit().clear().commit();

//  sharedPreferences.edit().remove("name").commit();
   }

参考地址:

http://vvsongsunny.iteye.com/blog/998681

http://blog.sina.com.cn/s/blog_4abb70a20100po2w.html

android SharedPreferences数据存储相关推荐

  1. Android的数据存储之一------SharedPreferences

    下面将介绍下Android的数据存储,Android提供了5种方式存储数据: 1.SharedPreferences存储数据; 2.文件存储数据: 3.SQLite数据库存储数据: 4.使用Conte ...

  2. Android常用数据存储之SharedPreferences存储和读取用法分享

    一:Android常用数据存储,一共有五种方式,分别是 1.SharedPreferences储存数据, 2.文件存储 3.SQLite数据存储 4.ContentProvider储存数据 5.网络存 ...

  3. 005 Android之数据存储

    文章目录 Android文件系统 Android文件的访问权限 文件访问权限实例 数据存储方式 内部存储 内部存储实例 外部存储 Shared Preferences Shared Preferenc ...

  4. android 储存方案,Android本地数据存储方案(一)

    Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助.不足之处,欢迎指正~ 在说到Android数据存储之前,先提一下数据持久化,所谓数据 ...

  5. android常用的存储方式,Android 常见数据存储方式

    Android 常见数据存储方式有以下三种:1.使用SharedPreferences存储数据:其本质就是一个xml文件,可以保存字符串.布尔值.基础数据.集合等数据.常用于存储较简单的参数设置. 2 ...

  6. Android之数据存储-刘志远-专题视频课程

    Android之数据存储-17742人已学习 课程介绍         本课程介绍了Android中几种数据存储方式,让大家对Android中的数据存储一个系统的认识 课程收益     本课程介绍了A ...

  7. android app数据存储,基于Android开发的APP数据存储研究

    谢原武+龙文 摘要: 作为一个完整的应用程序,数据存储操作是必不可少的.Android系统一共提供了四种数据存储方式分别为File文件存储.Shared Preferences存储.ContentPr ...

  8. Android的数据存储和IO - 自动朗读(TTS)

    Android的数据存储和IO - 自动朗读(TTS) 自动朗读又是Android提供的另一种另类的IO,蛮不错的哦,支持对指定文本内容进朗读,学习完这个内容我立马就让它朗读:wwj is a goo ...

  9. 【Android】数据存储,文件,数据库

    Android中数据存储 一.在内部存储读写文件 1.文件io读写 写文件 //写入数据 private fun saveFile() {//将文件写入内部存储空间时,只能在本应用的目录中写入,不能写 ...

最新文章

  1. 知识图谱能否成为企业下一代的数据仓库
  2. 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
  3. mysql密码正确却提示错误, 不输入密码反而能登录
  4. P2698-花盆Flowerpot【单调队列】
  5. linux文件什么权限比较安全,linux文件安全与权限
  6. HeadFirst设计模式之观察者模式学习
  7. [洪流学堂]Hololens开发入门篇1之模拟器开发环境配置
  8. DataBseDesign工作笔记002---数据库表设计
  9. Scala进阶之路-I/O流操作之文件处理
  10. PYECHARTS 实战 国内/国际地图航线图制作 (一)
  11. java 读usb口 用POS-58 90U 打印
  12. 寻找春天nbsp;九宫格日记-2011.09.20
  13. PAYPAL使用虚拟卡的会有优势吗?
  14. android华为怎么截屏快捷键,华为P9/P9Plus怎么截图 快捷键截图方法介绍
  15. [Unity基础]GL图像库
  16. 左右连接之where
  17. 人工神经网络研究的目的,人工神经网络训练过程
  18. 什么是CRM?CRM定义/CRM适用于谁?/CRM系统有什么作用?
  19. 宗镜录略讲——南怀瑾老师——系列9
  20. WordCount单词计数详解

热门文章

  1. Coursera课程Python for everyone:Quiz: Many-to-Many Relationships and Python
  2. 基元检测 Primitive Detection
  3. Precision Helper:最佳免费 CHM 制作软件
  4. 数字图像处理:第十章 离散图象变换
  5. Matlab字符串的基本操作
  6. Redis 常见命令
  7. web开发常用的几种居中形式
  8. Spring 文件上传功能
  9. facl:文件访问控制列表
  10. jQuery插件:jqGrid使用(二)