SharedPreferences:用于存储少量并且数据格式简单,基本上都是普通的字符串,标量类型的值,比如:应用程序的各种配置信息等。

SharedPreferences:保存的数据格式主要是key-value对

主要方法:

boolean contains(String key):判断是否包含特定key的数据

Map<String, ?> getAll():获取全部的数据

Xxx getXxx(String key, boolean defValue):获取指定key的值,如果不存在则返回defValue

SharedPreferences本身没有编辑功能,通过调用内部的接口可以实现编辑。调用edit()方法返回Editor对象,Editor提供了如下方法向SharedPreferences写入数据:

clear():清空数据

putXxx(String key, Xxx value):放入数据

remove(String key):删除数据

commit():当Editor编辑完成后,调用该方法提交修改

SharedPreferences本身是一个接口,程序无法创建SharedPreferences的实例,只能通过Context提供的SharedPreferences getSharedPreferences(String name, int mode)方法获取SharedPreferences实例:

第一个参数是文件的名称,不能带有后缀

第二个参数的含义:

Context.MODE_PRIVATE:只能被本应用读写

Context.MODE_WORLD_READABLE:能被其他的应用读,但是不能写

Context.MODE_WORLD_WRITEABLE:可以被其他的应用读和写

SharedPreferences本质是以XML格式的文档存数数据的。

SharedPreferences数据的存储总是保存在/data/data/<package_name>/shared_prefs目录下。

写入数据:

btn = (Button) findViewById(R.id.btn);
preferences = this.getSharedPreferences("hml", this.MODE_PRIVATE);
editor = preferences.edit();
editor.putString("test", "test");
editor.commit();

访问其他应用程序SharedPreferences中的数据

前提是其他应用程序创建SharedPreferences时指定的MODE是Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE

步骤:

1、创建其他应用程序的Context对象:Context createPackageContext(String packageName, int flags)

packageName:是其他应用程序的包名,在android中包名唯一标示一个应用程序

2、调用Context的getSharedPreferences(String name, int mode)获取SharedPreferences对象

3、其他操作和操作自己的SharedPreferences一样

最新文章

  1. .NET Core采用的全新配置系统[9]: 为什么针对XML的支持不够好?如何改进?
  2. 测试--easymock的使用
  3. ODP方式,大批量数据写入ORACLE数据库
  4. Unity3D中的线性插值Lerp()函数解析
  5. mac下XAMPP服务器配置多站点配置局域网配置 (转)
  6. 编写一个Java程序,计算一下1,2,…,9这9个数字可以组成多少个互不相同的、无重复数字的三位偶数。
  7. Mysql复制表格
  8. iOS耳机操作
  9. 为什么要关闭360云盘:新来的美工嫌我们logo太丑,所以就决定关闭了。这个理由怎么样
  10. Java线程面试题 Top 50(转载)
  11. sql 数据库备份还原脚本
  12. Eclipse使用git 上传代码至github
  13. 1.3 ODPS
  14. 十条很实用的jQuery代码片段
  15. iOS抓包工具Charles
  16. Redis的消息发布和订阅
  17. [BZOJ1977][BeiJing2010组队]次小生成树
  18. oracle_18c新建用户用normal登陆失败
  19. 带你入门 Docker
  20. BIO | NIO | AIO (Java版)

热门文章

  1. matplotlib系列——中文显示
  2. Aspnetcore下面服务器热更新与配置热加载
  3. SQL数据库—&lt;8&gt;触发器
  4. Idea maven项目不能新建package和class的解决【转】
  5. 力扣——Partition List(分隔链表) python实现
  6. Win7 VS2012智能提示显示英文的处理办法
  7. 【纪中集训】2019.08.02【NOIP提高组】模拟 A 组TJ
  8. BN和正则化一起使用的后果
  9. LOJ 2554 「CTSC2018」青蕈领主——结论(思路)+分治FFT
  10. ShopNC B2B2C最新版去除shop方法教程