- 6
- 0
- 约6.68千字
- 约 6页
- 2017-06-07 发布于湖北
- 举报
第⼗章 应⽤程序数据
第⼗章 应⽤程序数据
我们已经熟悉了Android应⽤程序的结构与基本组成元素,其中包括资源、清单与⽤
界⾯。在着⼿进⾏Android平台的功能性应⽤开发之后,⼤家肯定需要保存这样或者那
样的数据信息。Android平台提供多种选项,⽤于打理应⽤程序中的数据存储任务,⽽
这正是今天这篇⽂章要讨论的核⼼内容。
从⼴义上讲,Android应⽤中的数据存储选项共有五种主要类型:将数据保存在应⽤的
共享偏好当中、保存在内部存储 (专属于应⽤本⾝)当中、保存在外部存储 (向设备
公开)当中、保存在数据库当中以及保存在可通过设备互联⽹连接访问的Web资源当
中。受篇幅所限,我们⽆法详细对这些选项作出论述,但会对每种⽅案的基础特性加
以概括、从⽽帮助⼤家在需要使⽤持久化数据时理清存储问题的解决思路。
1. 共享偏好
第⼀步
共享偏好允许⼤家以键-值对的形式保存基本数据类型。应⽤程序的共享偏好⽂件通常
被视为最简单的数据存储选项,但从本质上说它对于存储对象提出了⼀定程度的限
制。⼤家可以通过它存储基本类型数字 (如整数、长数以及浮点数字)、布尔值以及
⽂本字符串。我们需要为⾃⼰保存的每个数值分配⼀个名称,从⽽在应⽤程序运⾏时
据此对其进⾏检索。由于⼤家很可能在⾃⼰创建的第⼀款应⽤中就⽤到共享偏好,因
此我们⼈把它作为讲解的重点、以更为详尽的⽅式 (相较于其它选项)进⾏表述,从
⽽帮助各位巩固必要知识。
⼤家可以在⾃⼰的主Activity类中尝试这些代码,并在稍后运⾏本系列教程的应⽤⽰例
时对其加以测试。在理想情况下,共享偏好应该可以符合应⽤程序中的⽤ 配置选
项,如同选择外观设置⼀样。⼤家应该还记得,我们曾经创建过⼀个简单的按钮,⽤
点击它之后屏幕上会显⽰出“Ouch”⽂本内容。现在让我们假设⾃⼰希望⽤ 在点击
⼀次之后,该按钮上会持续显⽰“Ouch”字样,且该状态在应⽤程序运⾏过程中始终保
持不变。这意味着按钮上的初始⽂本仅在⽤ ⾸次点击操作之前存在。
让我们为应⽤程序添加共享偏好内容。在该类的起始位置、onCreate⽅法之前,我们
为共享偏好选择⼀个名称:
public static final String MY_APP_PREFS = MyAppPrefs
利⽤“public static”修饰符,我们可以访问处于应⽤内任何类中的这项变量,因此我们
只需要将偏好名称字符串保存在这⾥即可。我们使⽤⼤写是因为该变量属于常
数,“final”修饰符也是因此⽽存在。每⼀次检索或者在应⽤程序偏好当中设置数据条
⽬时,⼤家都必须使⽤同样的名称。
第⼆步
现在我们来编写共享偏好内容。在我们的onClick⽅法中、按钮“Ouch”⽂本设置部分的
下⽅,尝试通过名称取回这条共享偏好:
SharedPreferences thePrefs = getSharedPreferences(MY_APP_PREFS 0)
⼤家需要为“android .conent .SharedPreferences”类添加⼀条导⼊。将⿏标悬停
在“SharedPreferences”⽂本上⽅,并利⽤Eclipse提⽰完成导⼊。第⼀项参数是我们所定
义的偏好名称,第⼆项则是我们作为默认选项的基本模式。
现在我们需要为共享偏好指定⼀套编辑器,从⽽实现对其中数值的设定:
SharedPreferences.Editor prefsEd = thePrefs.edit();
现在我们可以向共享偏好当中写⼊值了:
prefsEd.putBoolean(btnPressed true);
这⾥我们使⽤了布尔类型,因为当前状态只分为两种 ⽤ 已经或者尚未按下按
钮。编辑器提供多种不同类型,我们可以从中选择以保存这套共享偏好,其中每种⽅
法都拥有⾃⼰的名称与值参数。最后,我们需要提交编辑结果:
prefsEmit();
第三步
现在让我们利⽤已经保存的值来检测⽤ 运⾏应⽤程序后,按钮应该显⽰什么样的内
容。在onCreate 中的现有代码之后添加共享偏好:
SharedPreferences thePrefs = getSharedPreferences(MY_APP_PREFS 0)
这⼀次我们不必使⽤编辑器,因为我们只需要获取⼀个值:
boolean pressed = thePrefs.getBoolean(btnPressed false);
现在我们利⽤已经设置过的名称检索该值,并读取变量中的结果。如果该值尚未被设
置,返回的则为第⼆
您可能关注的文档
- 产品类别和网上购物决策过程的关系.pdf
- 第六章 输入输出和技术.ppt
- 厂区综合布线技术方案教案.pdf
- 出入境术语与相关用语整理综合版.doc
- 初二数学上册 函数与认识一次函数.doc
- 数学建模 - 第九讲 排序问题.ppt
- 数学建模和LINGO04章.ppt
- 初三第一轮复习方程和不等式.doc
- 数值分析第六篇电子教案.pdf
- 数值分析第四讲电子教案.pdf
- GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 中国国家标准 GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求.pdf
- 《GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求》.pdf
- 中国国家标准 GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 《GB/T 42818.2-2026认知无障碍 第2部分:报告》.pdf
- 《GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器》.pdf
- 中国国家标准 GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
- 中国国家标准 GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
原创力文档

文档评论(0)