Android SharedPreferences笔记

SharedPreferences数据存储笔记

好奇、学习、总结、分享

一、简介:

在实际开发中,类似于账号、密码保存、软件参数配置、播放进度值等比较简单的数据需要做持久化保存时,推荐使用SharedPerferences,SP是一种轻量级的数据存储方式,它以键值对的方式将数据存储进xml文件中。

SharedPreferences 可以数据的共享,包括应用程序之间,或者同一个应用程序中的不同组件。比如两个activity除了通过Intent传递数据之外,也可以通过ShreadPreferences来共享数据

SharedPreferences只能保存简单类型的数据,例如int、booleanfloatlong以及String类类型,如下所示。

二、SharedPreferences数据的四种操作模式

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.

Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

三、获取SharedPreferences种方式:

调用Context对象的getSharedPreferences()方法【常用】

调用Activity对象的getPreferences()方法

调用PreferenceManager类的getDefaultSharedPreferences()方法【不常用】

三种方式的区别:

1 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.

2 调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

3 通过PreferenceManager【偏好管理器】获取的sharedPreference对象,会自动创建一个包名.类名_Preferences.xml文件。【不常用】

四、调用Context类的getSharedPreferences方法存储数据和读取数据的案例

1、sharedPreference保存数据

//1.通过Context获取sharedpreference对象

//参数1:xml文件名,不用写后缀名,系统会自动添加,参数2:文件模式[4种常用模式]

SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo",Context.MODE_PRIVATE );

//2.通过sp中的方法获取Editor对象,用来向xml文件中写入数据

Editor edit = sharedPreferences.edit();

//3.往editor对象中存值,键值对

//参数1:代表是存放数据的 名称,参数2:代表存放数据的值

edit.putString("username"username);

edit.putString("password"password);

//4.提交editor对象,把上面写入的数据保存到xml文件中

//注意:commit方法相当于数据库事务中的提交(commit)操作。

edit.commit();

//提示保存成功

Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();

安卓系统会自动在APP的安装目录下创建一个shared_prefs目录,并在该目录下创建userinfo.xml文件

具体路径:data/data/com.leee.helloworld/shared_prefs/userinfo.xml

2sharedPreference读取数据:

//1.通过Context获取sharedpreference对象

//参数1:xml文件名,参数2:文件模式[4种常用模式]

SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);

//2.通过对象获取存放的内容

//参数1:要获取的key的名称,参数2:缺省值,如果sp中不存在这个key值,那么就用参数2的值作为返回指

String username = sharedPreferences.getString("username""admin");

String password = sharedPreferences.getString("password""admin");

//3.使用获取到的key的值。

本文是整理之前学习安卓过程中的笔记,方便自己巩固和加强记忆。本文也参考了其他优秀的文章,如下:

1、http://blog.csdn.net/zhang31jian/article/details/23258065

2、http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值