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. RxJava Rxandroid retrofit

    其实Retrofit会了.集合RxJava,RxAndroid 就很简单了. 只需要改几个地方. 1.接口里面返回的对象不再是 call,而是Observable public interface A ...

  2. RSA进阶之维纳攻击(wiener-attack )

    维纳攻击: 场景:e很大 例题: 第七届山东网络安全技能大赛 链接:https://pan.baidu.com/s/1IRInw3pB7SQfp3MxRJW17A 提取码:lcn3 e很大,妥了,维纳 ...

  3. linux简单授权

    linux授权:r: readw: writex:executech:change b=byte1byte=8 bitsu=user ownerg=groupo=othera=all_ _ _ _ _ ...

  4. [oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库

    1 form表单如何生成多选框(包含了多选框可选择内容) - Form设置班级输入框为 select多选 - 多选 class TeacherForm(Form): name = fields.Cha ...

  5. chrome+postman测试rest请求

    1.在chrome安装postman 2.在chrome打开postman 浏览器输入:chrome://apps/ 选择你的postman 3.在你看到的postman中 normal中可以看到参数 ...

  6. 【bzoj3687】简单题 背包dp+STL-bitset

    题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.目前为止,小呆已经解决了前三个问题 ...

  7. react history模式下的白屏问题

    近期,再用react的时候,由于不想用丑陋的hash,便将路由模式切换成history了,结果带来了一些问题,比如刷新白屏,还有图片加载不出来,这里我们说一下解决方案. 原因 首先,我们说一下造成这一 ...

  8. 2017-3-01 test

    三道好像都是HDU上的题QAQ 题目名称都没改,差评 T1:http://acm.hdu.edu.cn/showproblem.php?pid=5073 被卡精度了QAQ 先排一发序,然后发现最后未动 ...

  9. ionic2添加自定义文字

    上次更新到如何添加自定义图标,紧接着这次更新ionic2如何添加自定义字体 首先你要有自己的字体文件以.ttf结尾的文件字体 :推荐个字体文件网站(相对来说流氓软件比较少的)http://www.ps ...

  10. eclspse魔板

    window->prefence->搜索 template即可