Android:SharedPreferences详解+示例

为什么80%的码农都做不了架构师?>>> hot3.png

一、简介
SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。

二、存储位置
在/data/data/<包名>/shared_prefs目录下。

三、操作数据
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。
具体操作过程:

1、根据Context获取SharedPreferences对象
2、利用edit()方法获取Editor对象。
3、通过Editor对象存储key-value键值对数据。
4、通过commit()方法提交数据。

四、实例代码

public class SharePreActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);//获取SharedPreferences对象Context ct = SharePActivity.this;       SharedPreferences sp = ct.getSharedPreferences("MY_PRE", MODE_PRIVATE);//存入数据Editor editor = sp.edit();editor.putString("STR_KEY", "string");editor.putInt("INT_KEY", 1);editor.putBoolean("BOO_KEY", true);editor.commit();//返回STRING_KEY的值,定义key值错误或者此key无对应value值的话返回""Log.d("look_sharePre", sp.getString("STR_KEY", ""));//如果OTHER_KEY不存在,定义key值错误或者此key无对应value值的返回值为"other"Log.d("look_sharePre", sp.getString("OTHER_KEY", "other"));}}

 注:在私有目录下生成一个MY_PRE.xml文件,里面采用键值对的形式存储数据。    

<?xml version='1.0' encoding='utf-8' standalone='yes' ?><map><string name="STR_KEY">string</string><int name="INT_KEY" value="1" /><boolean name="BOO_KEY" value="true" /></map>

五、方法详解

1、getSharedPreferences(String name, int mode)的两个参数的:
    参数1:name, 存储时的名称,比如这里的"MY_PRE";

    参数2:mode,打开方式,一般都用Activity.MODE_PRIVATE、MODE_PRIVATE

2、registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener          listener)
    注册一个当preference发生改变时被调用的回调函数

3、unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener      listener):
    删除当前回调函数

4、SharedPreferences.Editor接口
     用于修改SharedPreferences对象的内容,所有更改都是在编辑器所做的批处理,而不是复制回原来的SharedPreferences或持久化存储,直到你调用commit(),才会永久存储。
   

方法说明:
clear():清除内容。
commit():提交修改
remove(String key):删除preference

六、扩展功能

1、音效设置
保存应用程序当前是否 播放音效的状态。当前音效状态处于关闭时,按“+”键来开启音效,然后点击返回按钮退出程序 ,再次启动应用程序,现在的音效状态就处于开的状态。保存操作是放在 back按钮的监听事件里边完成的。 在这个程序中我们在退出时把音效状态保存到 Preferences 中,因此在启动时就读取出上次保存的数据。上次保存的是什么状态 ,在打开的时候就是什么状态。

2、记住密码



转载于:https://my.oschina.net/xsjayz/blog/95272

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类模板的分离式编译错误解决

声明&#xff1a;不谈逻辑是否能被执行成功&#xff0c;就谈编译是否成功. vs的错误: linux下g的错误: 以上错误&#xff0c;改怎么解决呢&#xff1f; 方法1&#xff1a;把实现代码和头文件写在一起 方法2&#xff1a;在.cpp文件中加入模板声明

6421B Lab5 路由和远程访问的配置与故障排除

共2个实验&#xff1a; 实验L5A&#xff1a;配置和管理网络访问 实验L5B&#xff1a;实现DirectAccess&#xff08;略&#xff09; 实验L5A&#xff1a;配置和管理网络访问 共有3个练习 练习1&#xff1a;实现***远程访问解决方案。 练习2&#xff1a;配置一个自定义的网络策略…

工作中影响提高的一些想法

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;一直很迷茫&#xff0c;老是觉得效率低下&#xff0c;慢慢发现是自己做事的方式有问题&#xff0c;首先觉得人懒&#xff0c;喜欢动手却不愿意去想&#xff0c;觉得慢慢做过去&#xff0c;问题就解决了&…

项目:SQL server 2008构建群集——环境部署

网络拓扑图 windows 2008 (1)操作系统&#xff1a;Microsoft Windows Server 2008 R2 (64)SQL版本 &#xff1a;SQL server 2008 R2 64 位角色: 故障转移群集节点 SQL server 故障转移群集安装域名&#xff1a;test.com主机名&#xff1a;PC1IP: 172.16.0.1 &#xff08;…

Matlab/Simulink的一些功能用法笔记(3)

01--引言 最近加入到一个项目组&#xff0c;有一些测试需要去支持&#xff0c;通过了解原先团队的测试方法后&#xff0c;自己作了如下改善&#xff0c;大大提高了工作效率。这也许就是软件开发的意义吧&#xff0c;能够去除一些重复的机械的人工操作并且结果还非常不可靠。 …

Delphi多媒体设计之TMediaPlayer组件(二)

Wave音频&#xff08;Wave Audio&#xff09; 播放Wave音频是最基本的多媒体操作之一&#xff0c;它可能是最普通的&#xff0c;同步播放Wave文件代码如下&#xff1a; ?1234567procedure TForm1.btn1Click(Sender: TObject);beginmpPlayer.Wait : True; { 同步播放}mpPlayer.…

新一代数据中心不可忽视DAC高速铜缆直连线应用

罗森伯格亚太电子有限公司&#xff1a;李平 市场背景不断创新的网络技术和层出不穷的网络应用推动着网络飞速发展&#xff0c;作为信息数据集中交换处理和网络设备存放的数据中心&#xff0c;一直面临着高带宽&#xff0c;高可靠性和低延时的挑战。根据IDC产业发展研究报告&…

浅谈asio中async_accept函数占用内存高的写法

相比大家都使用过asio 中的async_accpect如果使用的好&#xff0c;内存会占用的小,下面来看一端实列:

高清壁纸:60款可爱的圣诞节电脑桌面壁纸《下篇》

这篇文章向大家分享60款非常可爱的圣诞节电脑桌面壁纸。圣诞节越来越近了&#xff0c;赶紧来挑选一款精美的圣诞节壁纸装饰你的电脑桌面吧&#xff01;希望这些精美的高清圣诞节电脑桌面壁纸你会喜欢。推荐阅读&#xff1a;《60款美轮美奂的圣诞节电脑桌面壁纸【上篇】》&#…

几种开源软件授权协议

2019独角兽企业重金招聘Python工程师标准>>> Open Source Initiative (http://opensource.org) 组织通过批准的开源协议目前有58种。 我们在常见的开源协议如GPL, LGPL, BSD, MIT等都是OSI批准的协议。 如果要开源自己的代码&#xff0c;最好也是选择这些被批准的…

emplace_back和push_back区别

#include <vector> #include <iostream> using namespace std; class testDemo { public: testDemo(int num) :num(num) { std::cout << "调用构造函数" << endl; } testDemo(const testDemo& other) :num(other.…

Storyboard初体验

2019独角兽企业重金招聘Python工程师标准>>> Storyboard是iOS5的新特性。使用Storyboard可以更方便的管理应用的界面&#xff0c;同时为视图间的跳转提供了清晰的脉络。 任何时候你都可以在你的项目中添加Storyboard&#xff0c;不管你创建项目的时候有没有勾选“U…

linux服务之DHCP

转自&#xff1a;http://best0.blog.51cto.com/444987/104151用Linux做DHCP服务器&#xff0c;原理跟在windows环境下、路由器上做DHCP相同&#xff0c;所以不在这里介绍了。我们直接开始配置dhcp服务器。这次介绍用Linux配置DHCP服务器&#xff0c;我以实验理论的方式介绍&…

IIS Express 使用详细说明

最近在使用XP的IIS发布Asp.Net MVC3的项目&#xff0c;但是发现一个很头疼的一个问题&#xff0c;在IIS指定虚拟目录来发布网站发布不了&#xff0c;以前发布Webfrom项目则不会有这样的问题&#xff0c;应该是跟路由路径有关系&#xff0c;导致每次都是从网站根节点算起&#x…

离奇的xenapp客户端无法加载应用故障解决过程 ...

新建的xenapp 6.5 for 2008 简体中文版&#xff0c;弄好之后从客户端去访问&#xff0c;结果报错&#xff08;当时忘了截图下来&#xff09;&#xff0c;大致意思就是说服务器无法处理我的请求。确认安装过程正确&#xff0c;程序发布正常。排查过程发现通过RDP的远程桌面可以加…

ADDS学习(下)

任务三&#xff1a;完成活动目录备份和恢复 1) 验证第一部分用户和OU是否存在 2) 备份活动目录 3) 删除一个OU 4) 恢复 5) 验证恢复是否成功 如下图&#xff0c;qingfeng.com域中有OU和用户&#xff0c; 要备份活动目录&#xff0c;使用微软的windows server backup工具&#x…

探究make_shared效率

Why Make_shared ? C11 中引入了智能指针, 同时还有一个模板函数 std::make_shared 可以返回一个指定类型的 std::shared_ptr, 那与 std::shared_ptr 的构造函数相比它能给我们带来什么好处呢 ? 优点 效率更高 shared_ptr 需要维护引用计数的信息, 强引用, 用来记录当前…

asp.net实现ftp上传代码(解决大文件上传问题)

原来使用asp.net上传控件上传 那个虽然简单但是页面不是很友好 然后就用了uploadify上传控件 这个控件虽然界面友好 但是大文件还是不能上传 而且在不同的浏览器会出现session丢失问题 所以我到了个ftp上传的方法 以下是具体代码 View Code?11 using System; 2 using System…

tolua++

一.tolua简介tolua是一种第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用Lua来编写使用C语言库的脚本文件.二.tolua的编译. tolua的主页在http://www.codenix.com/~tolua/,目前的最新版本是1.0.7,为了使用tolua,我们需要三个文件: 1.bin/tolua[.exe…

IE6PNG8PNG24test

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"&…