- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第⼗章 应⽤程序数据
第⼗章 应⽤程序数据
我们已经熟悉了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);
现在我们利⽤已经设置过的名称检索该值,并读取变量中的结果。如果该值尚未被设
置,返回的则为第⼆
您可能关注的文档
最近下载
- 人教版四年级上册数学期末总复习(课件)-.pptx VIP
- 心肺复苏教案.doc VIP
- 中医综合诊所污水、污物、粪便处理方案及周边环境情况说明.docx VIP
- 华南理工大学《嵌入式系统与设计》2022-2023学年期末试卷.doc VIP
- 2025年语言导论期末试题及答案.docx
- 三年级语文上册课件-《24.司马光》 (共34张PPT)部编版.ppt VIP
- 人教版二上语文 第7单元测试卷(附答案).docx VIP
- 沥青摊铺机安全操作规程.docx VIP
- 国开期末考试《中国现代文学专题》机考试题及答案(第2套).docx VIP
- 华南理工大学《嵌入式系统与设计》2021-2022学年期末试卷.doc VIP
原创力文档


文档评论(0)