Android 数据存储之 SharedPreferences储存
------------------------------------------SharedPreferences存储--------------------------------------------
SharedPreferences 使用键值对方式来存储数据的。当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出。
SharedPreferences 支持多种不同数据类型的存储,可以按照需要取出数值型,或者字符型的数据。
-----------------------------------------获取SharedPreferences对象-----------------------------------------
要想使用 SharedPreferences 来存储数据,首先要获取到 SharedPreferences 对象。Android 主要提供了三种方法来得到 SharedPreferences 对象。
1. Context 类中的 getSharedPreferences() 方法
此方法接受两个参数,第一个参数用于指定 SharedPreferences 文件的名称,如果指定的文件不存在则会创建一个。
SharedPreferences 文件都是存放在 /data/data/<包名>/shared_prefs/ 目录下的。
第二个参数用于指定操作模式,主要为 MODE_PRIVATE(默认操作模式) 和 MODE_MULTI_PROCESS(多进程读写) 。
2. Activity 类中的 getPreferences() 方法
这个方法和 Context 中的 getSharedPreferences() 方法类似,不过它只接收一个操作模式参数,使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。
3. PreferenceManager 类中的 getDefaultSharedPreferences() 方法
这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。
得到了 SharedPreferences 对象之后,就可以开始向 SharedPreferences 文件中储存数据了。
---------------------------------------将数据存储到SharePreferences中--------------------------------------
使用 SharedPreferences 对象储存数据:
1. 调用 SharedPreferences 对象的 edit() 方法来获取一个 SharePreferences.Editor 对象。
2. 向 SharedPreferences.Editor 对象中添加数据,如果添加一个字符串则使用 putString() 方法,以此类推。
3. 调用 commit() 方法将添加的数据提交,从而完成数据存储操作。
将数据存储到 SharedPreferences 文件中:
public void onClick(View v) {
//获取 SharedPreferences 对象
SharedPreferences shared = getSharedPreferences("data", MODE_PRIVATE);
//获取 SharedPreferences.Editor 对象
SharedPreferences.Editor editor = shared.edit();
//以键值对方式传入数据
editor.putString("name", "Jay Chou");
editor.putInt("age", 37);
editor.putBoolean("married", true);
//提交数据
editor.commit();
}
最终得到的 data.xml 文件内容:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">Jay Chou</string>
<int name="age" value="37" />
<boolean name="married" value="true" />
</map>
可以看到所有的数据都已经成功保存下来了,并且SharedPreferences 文件是使用XML格式来对数据进行管理的。
注意:如果要清除 XML 中的所有数据,使用 SharedPreferences.Editor 对象的 clear() 方法,就能够将 SharedPreferences 文件中的数据全部清除。
---------------------------------------从SharePreferences中读取数据--------------------------------------
相比从 SharedPreferences 文件中存储文件,读取文件显得更加简单。SharedPreferences 对象中提供了一系列的 get 方法用于对存储的数据进行读取,每种 get 方法都对应了 SharedPreferences.Editor 中的一种 put 方法。
这些 get 方法都接收两个参数,第一个参数是键,传入存储数据时使用的键就可以得到相应的值了,第二个参数是默认值,即表示当传入的键找不到对应的值时,会以什么样的默认值进行返回。
获取 SharedPreferences 文件数据,并打印到控制台:
public void onClick(View v) {
//获取SharedPreferences对象
SharedPreferences shared = getSharedPreferences("data", MODE_PRIVATE);
//获取xml数据
String name = shared.getString("name", "null");
int age = shared.getInt("age", 0);
boolean married = shared.getBoolean("married", false);
//获取不存在的数据
String hobby = shared.getString("hobby", "unknown");
//打印日志记录
Log.d("woider", "name: " + name);
Log.d("woider", "age: " + age);
Log.d("woider", "married: " + married);
Log.d("woider", "hobby: " + hobby);
}
日志截图:

Android 数据存储之 SharedPreferences储存的更多相关文章
- Android数据存储-通过SharedPreferences实现记住密码的操作
在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...
- Android数据存储方式--SharedPreferences
Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...
- Android数据存储三剑客——SharedPreferences、File、SQLite
Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...
- Android数据存储之SharedPreferences存储
安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...
- android数据存储之SharedPreferences
一.SharedPreferences简介 (1)SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activ ...
- Android数据存储之SharedPreferences使用
SharedPreferences是Android中一种轻型的数据存储类.本质上是基于XML文件进行存储Key-Value键值对的数据,生成的XML文件的目录在/data/data/包名/Shared ...
- Android数据存储之SharedPreferences及如何安全存储
前言: 最近一直在学习ios的数据存储,当学习到NSUserDefaults的时候让我回想起了SharedPreferences,今天闲来无事,想着总结一下SharedPreferences的使用. ...
- Android数据存储之sharedpreferences与Content Provider
android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ...
- Android数据存储:Shared Preferences
Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...
随机推荐
- linux如何查看系统信息
一:cpu [root@srv /]# more /proc/cpuinfo | grep "model name" model name : Intel(R) Xeon(R ...
- sphinx安装记录 转
[转]sphinx服务器安装及配置详解 安装PHP sphinx扩展 1.架构:ip192.168.0.200 redhat5.4(64位)2.安装 #cd /usr/local/src #y ...
- 第2章 jQuery的选择器
选择器是jQuery的根基 一. 认识 1.CSS常用的选择器 标签选择器,后代选择器,Id选择器,通配符选择器,类选择器,群组选择器——主流浏览器全部支持 伪类选择器,子选择器,临近选择器等等——不 ...
- 获取<img src="sdf.jpg" Big="sf.jpg">中的big的值
原代码: <img src="sdf.jpg" Big="sf.jpg" onclick="getsrc($(this).attr(" ...
- Django笔记-post与get方法相关出错记录
1.刚刚调试一个注册的程序,blog.views.register里用了return HttpResponse方法返回了一个注册页面 register.html,后者用了method = " ...
- php引用计数的基本知识
每个php变量存在一个叫"zval"的变量容器中.一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息.第一个是"is_ref",是个bool ...
- Make命令
Make命令 一.Make的概念 Make这个词,英语的意思是"制作".Make命令直接用了这个意思,就是要做出某个文件.比如,要做出文件a.txt,就可以执行下面的命令. $ m ...
- Kindeditor 代码审计
<?php /** * KindEditor PHP * * 本PHP程序是演示程序,建议不要直接在实际项目中使用. * 如果您确定直接使用本程序,使用之前请仔细确认相关安全设置. * */ r ...
- Python之路【第十二篇】前端之js&dome&jQuery
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...
- OB函数
ob_start 打开输出控制缓冲 ob_get_contents 返回输出缓冲区内容 ob_clean 清空( ...