1.SharedPreferences存储

SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把相应的值取出来

SharePreferences是一个接口,不能直接使用,但可以通过以下两种方法获得:

1.1.1Context类的getSharePreferences(String name ,ine mode)方法来获得一个SharePreferences对象:

此方法接收两个参数,第一个参数用于指定SharedPreference文件的名称,即存储XML文件的名称,如果存在,则会直接引用,如果指定的文件不存在则会创建一个,SharedPreference文件都是存放在/data/data/<包名>/shared_prefs/存储的XML文件目录下,第二个参数表示文件的存储模式(该方式创建的XML文件可以被同一个软件的Activity引用)。

文件的几种存储模式:

MODE_PRIVATE:表示私有文佳,该文件智能被创建他的文件所访问

MODE_APPEND:表示新的存储内容会添加在原有文件内容的后面。

MODE_WORLD_READABLE:表示该文件能被所有的文件读取,但是不可以写入。

MODE_WORLD_WEITABLE:表示该文件能被所有的文件写入,也可以读取

MODE_MULTI_PROCESS:表示改文件可以被多个进程同时访问,适用于Android2.3及之后的版本。

1.1.2:调用Activity对象的getPreferences(int mode)方法

该方法有一个参数,表示文件的存储模式,具体模式童第轶中相同,这种方法获得的对象只能被该方法所在的Activity所调用

1.2还要创建一个SharePreferences.Editor类的对象,该类负责具体的写入操作,创建方法使通过SharePreferences类的edit()方法来创建。

通常有以下几种方法:

putBoolean(String key,boolean value)

putString(String key,String value)

putInt(String key,int value)

putFloat(String key,float value)

putLong(String key,long value)

commit();//在执行完各种写入、删除、修改的操作后,通过此方法来正式提交数据,确认存储文件的数据变化

clear();//清除键值对的方法

remove(String key);//删除官集资所对应的值

getAll();//读取存储文件中的所有数据,返回一个Map类型的值,来存放所有的键值对

getBoolean(String key,boolean defValue)

getString(String key,String defValue)
getInt(String key,String defValue)
getFloat(String key,String defValue)
getLong(String key,String defValue) contains(String key) registerSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注册监听器,来监听SharePreferences的更改事件,在onCreate()方法中设置 unregisterSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener);//注销监听器,不再监听SharePreferences的更改事件。

存储数据

得到SharedPreference对象之后,就可以开始向SharedPreference文件中存储数据了,主要有三步:

a.使用SharedPreference对象的edit()方法来获取一个SharedPreference.Editor对象

b.向SharedPreference.Editor对象中添加数据,比如添加一个布尔型数据就是用putBoolean方法,添加一个字符串就是用putString()方法,以此类推

c.调用commit()方法将添加的数据提交,从而完成数据存储操作

如:

private SharePreferences sp;

//创建一个SharePreferences接口的实例对象,将生成一个XML名称为demo_01,模式为MODE_PRIVATE

sp=this.getSharedPreferences("demo_01",MODE_PRIVATE);

//通过edit()方法创建一个SharePreferences.Editor类的实例对象
SharePreferences.Editor editor =sp.edit();
//通过putString()方法,将数据存入文件中
editor.putString("name","sssss"); //用commit()方法予以正式提交 editor.commit();

打开文件,可看到如下代码:

<map>

<string name="name">sssss</string>

</map>

删除数据:

editor.clear();//清除数据

查询数据:

String name = getString("name","lisi");

1.3从SharedPreferences中读取数据

SharedPreferences对象中提供了一系列的get方法用于读取数据,每种get对应了一种put方法

get方法接收两个参数,第一个是键,第二个参数是默认值,即当传入的键找不到对应的值时,会以什么样的默认值进行返回

可以实现设置密码,记住密码功能。

数据存储SharePreferences详解的更多相关文章

  1. Android开发笔记之: 数据存储方式详解

    无论是神马平台,神马开发环境,神马软件程序,数据都是核心.对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用.总体的来讲,数据存储方式有三种:一个是文件,一个是数 ...

  2. MySQL数据库的各种存储引擎详解

    原文来自:MySQL数据库的各种存储引擎详解   MySQL有多种存储引擎,每种存储引擎有各自的优缺点,大家可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB ...

  3. 10.Spark Streaming源码分析:Receiver数据接收全过程详解

    原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/)   在上一篇中介绍了Receiver的整体架构和设计原理,本篇内容主要介绍Receiver在 ...

  4. Web存储使用详解(本地存储、会话存储)

    Web存储使用详解(本地存储.会话存储)1,Web存储介绍HTML5的Web存储功能是让网页在用户计算机上保存一些信息.Web存储又分为两种:(1)本地存储,对应 localStorage 对象.用于 ...

  5. Kubernetes K8S之存储ConfigMap详解

    K8S之存储ConfigMap概述与说明,并详解常用ConfigMap示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS ...

  6. Kubernetes K8S之存储Volume详解

    K8S之存储Volume概述与说明,并详解常用Volume示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C ...

  7. CEPH-4:ceph RadowGW对象存储功能详解

    ceph RadosGW对象存储使用详解 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍对象存储RadosGw功能如何灵活的使用,集群背景: $ ceph -s clust ...

  8. C中存储分区详解

    一. 在c中分为这几个存储区:栈(stack),堆(heap),代码段(text),数据段(data),bss 段,常量存储区,1.栈(stack):由编译器自动分配释放自动分配,自动回收:栈区里面存 ...

  9. 基于CentOS6.5下如何正确安装和使用Tcpreplay来重放数据(图文详解)

    前期博客 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐) tcpreplay是什么? 简单的说, tcpreplay是一种pcap包的重放 ...

随机推荐

  1. Linux 文本三剑客之 grep

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  2. Oracle的主要组件和基本概念

    oracle 简介 oracle(甲骨文)公司 1977年,三人合伙创办(Software Development Laboratories,SDL) 1979年,更名为Relational Soft ...

  3. C++ 入门到进阶 学习路线

    前言 学习这件事不在乎有没有人教你,最重要的是在于你自己有没有觉悟和恒心. -- 法布尔 简介 随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能 ...

  4. 腾讯发布 K8s 多集群管理开源项目 Clusternet

    11月4日,在腾讯数字生态大会上,腾讯宣布了云原生领域一项重磅开源进展-- K8s 多集群管理项目 Clusternet 正式开源. Clusternet 由腾讯联合多点生活.QQ音乐.富途证券.微众 ...

  5. git stash 存储命令

    应用场景 一.当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除.但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可 ...

  6. redis学习笔记(详细)——高级篇

    redis学习笔记(详细)--初级篇 redis学习笔记(详细)--高级篇 redis配置文件介绍 linux环境下配置大于编程 redis 的配置文件位于 Redis 安装目录下,文件名为 redi ...

  7. SpringCloud config native 配置

    1.概述 最近项目使用springCloud 框架,使用config搭建git作为配置中心. 在私有化部署中,出现很多比较麻烦的和鸡肋的设计. 每次部署都需要安装gitlab 有些环境安装完gitla ...

  8. 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍

    目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...

  9. Java学习(十二)

    今天安装讲师推荐下载了一个叫Hbuiler X的IDE,并且学习了选择器的知识. 作为练习,写了一下的代码 <!DOCTYPE html> <html> <head> ...

  10. mui轮播图为什么设置了自动播放参数也不能自动播放呢?

    最近在做项目的时候,发现Mui的轮播图遇到个问题,设置了自动播放但是怎么也不能自动播放,这是为什么呢? 原来如果动态给mui的图片轮播添加图片,又使用的ajax获取的数据,但是你ajax 还没有执行完 ...