SharedPreferences


SharedPreferences 也是通过一个简单的Demo来理解SharedPreferences我们该怎么用,说说自己站在一个iOS开发的角度来看这个SharedPreferences的理解,在iOS中你肯定会知道NSUserDefaults,按照我自己的理解,这个NSUserDefaults和SharedPreferences是特别像的,都是通过键值对的方式来存储数据的,你要是懂iOS的话我觉得理解这个SharedPreferences也会变得相应的容易一点。它可以存储不同类型的数据,并且在读取出来的时候数据是和你写进去的时候数据类型是一致的。

登录Demo


下面通过这个简单的Demo来整理一下SharedPreferences,先看看下面的运行效果图:

代码其实很简单就这么几句,这里是数据的读取,也就是在控件创建的时候去判断是不是已经有过登录操作,有存储数据在本地:

下面是我们再点击登录的时候,把数据存储起来:

SharedPreferences的存储、读取过程


SharedPreferences的整个过程可以按照下面四个步走进行:

1、 获取到SharedPreferences对象,通过调用该对象的edit()方法获取到一个SharedPreferences.Editor对象

2、向SharedPreferences.Editor对象添加对象,比如布尔类型就用putBoolean()方法,添加字符串就用putString()方法

3、调用apply()方法将添加的互数据提交,完成了数据的存储

4、读取的时候就用SharedPreferences对象的各种get方法,这里说一下比如说这个getString()方法,两个参数,第一个参数就是我们的键,第二个值就是我们的默认参数,也就是通过这个键找不到值的时候就返回你这里填入的值,理解这个意思就行。

SharedPreferences对象获取方法挺多的


按照我们以前的理解,SharedPreferences对象的获得你会不会想着直接初始化这个SharedPreferences,在iOS中是这样,但在Android中我们的办法就不止了,下面这些原理那肯定都是初始化,说说下面这三个获取方法:

1、 Context 类中的 getSharedPreferences()方法, 此方法接收两个参数,第一个参数用于指定SharedPreferences的文件名称,第二个用于指定操作模式,和前面我们提到的文件存储的时候是一样的。

2、Activity 类中的 getPreferences() 方法, 这个方法和上面我们提到的Context类的方法是相似的,只不过它只接收一个参数,也就是Context中对应的第二个参数,它的文件名字默认是当前活动的类名

3、PreferencephalitisManager 类中的getdefaultSharePreferences()方法,这是一个静态的方法,它接收的是一个context参数,并且使用当前程序的包名称用作SharedPreferences的文件名

通过上面说的这几点,相信能够掌握SharedPreferences!

Android学习--持久化(二) SharedPreferences的更多相关文章

  1. 【Android】完善Android学习(二:API 2.3.4)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  2. Android学习笔记二之初始Activity

    初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...

  3. Android学习--持久化(三) SQLite & LitePal

    SQLite & LitePal 自己做为一个iOS开发,看到安卓这一块的时候,那中浓烈的熟悉味道更加强烈,SQLite这种轻量级的关系型数据库的使用在移动端相差不多,iOS有FMDB,And ...

  4. Android学习总结(二)——Service基本概念和生命周期

    好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...

  5. android学习笔记二、Activity深入学习

    一.创建和使用: 1.Activity是android的四大组件之一,需要继承Activity并在清单文件中进行声明才能使用.没有声明则报错. 2.启动Activity是通过Intent,有两种方式: ...

  6. Android数据持久化技术 — — —SharedPreferences

    SharedPreferences是使用键值对的方式来存储数据. 要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferen ...

  7. android 学习随笔二十一(内容提供者 )

    一.内容提供者* 应用的数据库是不允许其他应用访问的* 内容提供者的作用就是让别的应用访问到你的私有数据* 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查 ...

  8. android 学习随笔二(读写文件)

    在android读写文件 RAM:运行内存,相当于电脑的内存 ROM:内部存储空间,相当电脑硬盘,android手机必须有的 SD卡:外部存储空间,相当电脑的移动硬盘,不是必须的.手机如果内置16G存 ...

  9. Android学习(二)

    学号 20189214 <Android程序设计>第七周学习总结 教材学习内容总结 监听 设置点击监听的5种方式 方法1:直接用匿名内部类 这是最常用的一种方法,直接setXXXListe ...

随机推荐

  1. HDU1042 A * B Problem Plus

    A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  2. day09 threading, paramiko, queue 模块

    1 模拟ssh 2 锁 内部锁,程序锁,信号量 3 多线程 4  简单消息队列 先来看模拟ssh  ,python 的强大之处就是因为有很多模块,可以很简单的完成复杂的事情,今天我们用paramiko ...

  3. Django 五——中间件、缓存、CSRF、信号、Bootstrap(模板)

    内容概要: 1.Django的请求生命周期是怎么样的? 2.中间件 3.CSRF补充 4.信号 5.Bootstrap(模板) 1.Django的请求生命周期是怎么样的? (即请求发起到返回都经历了什 ...

  4. windows下git安装以及基本配置

    一.首先要下载git然后进行默认安装即可,然后查看系统环境变量是否添加     二.桌面右击鼠标,选择git bash 进入操作页面 git --version 检测是否安装成功   安装完成有配置一 ...

  5. 实时视频h5

    http://www.cnblogs.com/dotfun/p/4286878.html

  6. jeakins+maven+jmeter构建性能测试自动化( 在eclipse里运行如果出现没有找到“*.loadtest.xls”,请将此文件名修改为你对应使用的xsl文件名)

    背景: 首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自 ...

  7. Pycharm注册码最新版本2019激活码activation code + 最实用的激活方法(亲测有效)

    同时适用于jetbrains全系列可用例:IDEA.WebStorm.phpstor 由于想趁着这个寒假多学习下python,所以这些实用小技巧分享给大家,拿走不谢~ 这里为大家提供了两种最实用的激活 ...

  8. thinkphp3.2接入支付宝支付接口(PC端)

    下载支付宝接口包    点击这里        提取密码:aryp 整个接口核心类文件 alipay.config.php是相关参数的配置文件 alipayapi.php 是支付宝接口入口文件 not ...

  9. hnust 聚宝盆

    问题 A: 聚宝盆 时间限制: 1 Sec  内存限制: 128 MB提交: 663  解决: 282[提交][状态][讨论版] 题目描述 Grace是个善良的同学,他经常帮助同学解决问题.这天,他正 ...

  10. Leetcode 557.反转字符串中的单词III

    反转字符串中的单词III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest ...