Android学习--持久化(二) SharedPreferences
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的更多相关文章
- 【Android】完善Android学习(二:API 2.3.4)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- Android学习笔记二之初始Activity
初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...
- Android学习--持久化(三) SQLite & LitePal
SQLite & LitePal 自己做为一个iOS开发,看到安卓这一块的时候,那中浓烈的熟悉味道更加强烈,SQLite这种轻量级的关系型数据库的使用在移动端相差不多,iOS有FMDB,And ...
- Android学习总结(二)——Service基本概念和生命周期
好了,前面我们已经学习了Activity的知识,相信大家也有一定的理解,但是还是不能放松,Android四大组件,我们才学习了一个而已,接下我们继续学习Service.计划总结如下内容: 一.Serv ...
- android学习笔记二、Activity深入学习
一.创建和使用: 1.Activity是android的四大组件之一,需要继承Activity并在清单文件中进行声明才能使用.没有声明则报错. 2.启动Activity是通过Intent,有两种方式: ...
- Android数据持久化技术 — — —SharedPreferences
SharedPreferences是使用键值对的方式来存储数据. 要想使用SharedPreferences来存储数据,必须获取SharedPreferences对象,获取SharedPreferen ...
- android 学习随笔二十一(内容提供者 )
一.内容提供者* 应用的数据库是不允许其他应用访问的* 内容提供者的作用就是让别的应用访问到你的私有数据* 自定义内容提供者,继承ContentProvider类,重写增删改查方法,在方法中写增删改查 ...
- android 学习随笔二(读写文件)
在android读写文件 RAM:运行内存,相当于电脑的内存 ROM:内部存储空间,相当电脑硬盘,android手机必须有的 SD卡:外部存储空间,相当电脑的移动硬盘,不是必须的.手机如果内置16G存 ...
- Android学习(二)
学号 20189214 <Android程序设计>第七周学习总结 教材学习内容总结 监听 设置点击监听的5种方式 方法1:直接用匿名内部类 这是最常用的一种方法,直接setXXXListe ...
随机推荐
- Android如何添加多张引导页
摘要:项目需要添加多张引导页,所以在网上搜集了一些资料并整理好. Step1 添加一个GuideActivity. 其实这个引导页无非就是一个Activity,里面有一个ViewPager而已.多张图 ...
- RxJava Rxandroid retrofit
其实Retrofit会了.集合RxJava,RxAndroid 就很简单了. 只需要改几个地方. 1.接口里面返回的对象不再是 call,而是Observable public interface A ...
- PS教程超级合辑【800+集爆款课】
第1章 导读——推荐大家到网易云课堂学习购买(本博文仅为个人学习笔记)https://study.163.com/course/courseMain.htm?courseId=1442008& ...
- MySQL != 失效
字段中包含 NULL 和 其他字符串值时, 字段既包含 NULL 也有字符串类型的值, 使用如下 SQL 无法获取值为 NULL 的部分 SELECT * FROM table_name WHERE ...
- 堆STL和重载运算符
大根堆: 1.priority_queue<int> q;[默认 2. priority_queue< node,vector<node>,less<node> ...
- JavaScript简明教程之Node.js
Node.js是目前非常火热的技术,但是它的诞生经历却很奇特. 众所周知,在Netscape设计出JavaScript后的短短几个月,JavaScript事实上已经是前端开发的唯一标准. 后来,微软通 ...
- Jmeter 设置HTTP RPS性能测试模型
其实也挺简单的,主要是刚接触jmeter,记录一下. 1. 首先需要安装jmeter...真是废话... 2. 需要安装JMeterPlugins-ExtrasLibs-1.3.0.zip: JMet ...
- 转载:LeetCode:5Longest Palindromic Substring 最长回文子串
本文转自:http://www.cnblogs.com/TenosDoIt/p/3675788.html 题目链接 Given a string S, find the longest palindr ...
- webstorm不能使用stylus
1.https://stackoverflow.com/questions/23583514/webstorm-8-showing-errors-for-a-correct-html-tag 2. & ...
- git repo gerrit 的关系
Git作为一个版本控制工具,功能很强大,新建分支,切换分支都很快,小团队用Git就能很好地管理好了,但如果是Android系统如此庞大的工程呢,我们知道全套Android源码是很大很大的,目录结构也很 ...