第十篇 应用程序数据.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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); 现在我们利⽤已经设置过的名称检索该值,并读取变量中的结果。如果该值尚未被设 置,返回的则为第⼆

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档