------------------------------------------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储存的更多相关文章

  1. Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...

  2. Android数据存储方式--SharedPreferences

    Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...

  3. Android数据存储三剑客——SharedPreferences、File、SQLite

    Android中常用的数据存储一般有三种方式:SharedPreferences.文件和SQLite数据库,用来保存需要长时间保存的数据.本文将通过几个具体的小实例来讲解这三种方式的具体实现. 数据存 ...

  4. Android数据存储之SharedPreferences存储

    安卓系统为应用提供了系统级的配置存储方案,它就是靠SharedPreferences接口来实现的,该接口存储的所有信息都是以名值对的形式保存,但其保存的数据类型也仅限于基本数据类型,如字符串.整形.布 ...

  5. android数据存储之SharedPreferences

    一.SharedPreferences简介      (1)SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activ ...

  6. Android数据存储之SharedPreferences使用

    SharedPreferences是Android中一种轻型的数据存储类.本质上是基于XML文件进行存储Key-Value键值对的数据,生成的XML文件的目录在/data/data/包名/Shared ...

  7. Android数据存储之SharedPreferences及如何安全存储

    前言: 最近一直在学习ios的数据存储,当学习到NSUserDefaults的时候让我回想起了SharedPreferences,今天闲来无事,想着总结一下SharedPreferences的使用. ...

  8. Android数据存储之sharedpreferences与Content Provider

    android中对数据操作包含有: file, sqlite3, Preferences, ContectResolver与ContentProvider前三种数据操作方式都只是针对本应用内数据,程序 ...

  9. Android数据存储:Shared Preferences

    Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...

随机推荐

  1. ----------jqery和js如何判断checkbox是否选中 --------两个单选按钮如何选一个,且用jquery获取被选的值

    jqery和js如何判断checkbox是否选中 jquery: <div id="divId" class="divTable"> <div ...

  2. C++ 纯虚函数接口,标准 C 导出 DLL 函数的用法

    CMakeLists.txt project(virtual) # 创建工程 virtual add_library(virtual SHARED virtual.cpp) # 创建动态连接库 lib ...

  3. vs2013 支持C#6.0 Install-Package Microsoft.Net.Compilers

    vs2013 支持C#6.0  Install-Package Microsoft.Net.Compilers

  4. [Unity] 常用技巧收集

    Unity 屏幕旋转 void Update () { //处理横向两个方向旋转 if(Input.deviceOrientation == DeviceOrientation.LandscapeLe ...

  5. Win7下Python2.7环境安装paramiko模块

    Win7下Python2.7环境安装paramiko模块,经过安装并测试成功,整理文档如下: 1.下载安装Windows版本的Python2.7,我默认装在C:\Python27 我的python已经 ...

  6. servlet生命周期与工作原理

    →   Jsp的本质是Servlet,Servlet是服务器端的小程序,运行在服务器,用于处理及响应客户端的请求. Servlet和JSP的区别: servlet是特殊的Java类,必须继承HttpS ...

  7. java正则表达式 --简单认识

    学习目标 正则表达式的作用正则表达式的模式匹配Pattern类和Matcher类的使用掌握String对正则的支持具体内容一.认识正则(为什么要有正则) 方便的对数据进行匹配 执行复杂的字符串验证.拆 ...

  8. CXF bus interceptor配置

    作用:BUS是cxf的支架,它主要担当扩展及拦截器提供者的角色. 在这里主要讲讲 bus的interceptor的功能 目前配置cxf的interceptor主要有2中方法: 1.通过xml配置文件的 ...

  9. 使用HttpFileServer自建下载服务器

    如今单位办公离不开电脑,使用电脑离不开资料传输,举一个简单的例子吧,很多用户经常在电脑上编辑文件,这些文件往往打印出来给领导审阅,可是你电脑上没有打印机,这时你会想到通过优盘.网络硬盘.邮箱.QQ等方 ...

  10. Spring之FactoryBean

    首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混 BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂 Fa ...