基于android的日记本的设计与开发(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
基于android的日记本的设计与开发(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
基于android的日记本的设计与开发(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
基于android的日记本的设计与开发(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
基于android的日记本的设计与开发(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于android的日记本的设计与开发摘要android是一种基于LinuxV2.6内核的综合操作系统。android为全球超过10亿部手机和平板电脑提供强力支持。全球为数众多的移动电话用户正在使用各种基于android的电话,它可以自由定制且易于使用手机带给人们的便捷生活是不可替代的,手机已成为人们日常生活中不可或缺的重要部分,它不仅方便了人们的交流,娱乐功能更丰富了人们的生活。基于android的日记本是专为那些因为手机自带日记本功能不足而设计,在给带来方便快捷的同时每天一篇,也记录了生活中的点滴,符合现代快节奏生活的需求。系统的主要功能包括:日记的创建、删除、修改、加密、分享、搜索等各项综合记事功能,使该应用程序更加人性化,更加便捷。此论文描述了日记本的设计理念、设计过程、实现结果和测试过程。关键词:移动终端;android;日记本iBasedonthedesignandthedevelopmentoftheandroidsdiaryAbstractandroidisaLinuxbasedV2.6integratedoperatingsystemkernel.Morethan1billionmobilephonesandtabletsprovidestrongsupportandroidfortheworld.Becauseitfreetocustomizeandeasytouse,alargenumberofmobilephoneusersareusingallkindsofandroidbasedphones,mobilephonesbringconvenientforpeopleslife,itnotonlyconvenientforpeoplescommunication,entertainmentfunctionmoreenrichedpeopleslifeandithasbecomeanindispensableimportantpartinpeoplesDailylife.Basedontheandroidsdiaryisdesignedforthosephoneswhoseowndiaryfunctionisnotuseful.Anarticleeveryday,bringconvenient,alsorecordedthelifewhichneedsofthemodernfast-pacedlife.Diarysystemsmainfeaturesinclude:create,delete,modify,encryption,share,search,andothercomprehensivechroniclefunction,maketheapplicationmorehumanizedandmoreconvenient.Thispaperdescribesthedesignideasofthediary,thedesignprocess,implementationresultsandthetestingprocess.Keywords:android;dairy;mobiledevices目录摘要.iAbstract.ii1绪论.11.1课题背景.11.2目的和意义.11.3android平台及相关知识简介.11.3.1android现状及发展.11.3.2android系统特点.21.4开发工具.21.4.1Eclipse.21.4.2androidSDK.31.4.3android手机自带的sqlite轻量级数据库.32可行性分析.42.1背景.42.2可行性分析.42.2.1技术的可行性.42.2.2经济的可行性.42.2.3操作可行性.42.2.4法律的可行性.43需求分析.53.1软硬件需求.53.2性能需求.53.2.1系统的易操作性.53.2.2数据的正确性与完整性.53.2.3数据的安全性.53.3界面需求.54系统概要设计.74.1设计的基本思路.74.2系统用户用例图.74.3系统流程图.84.4功能模块.95系统功能实现.105.1密码验证登录界面.105.1.1数字密码验证.105.1.2手势密码验证.125.2日记本输入模块.145.2.1写日记.145.2.2删除日记.155.2.3字体大小设置.175.2.4分享功能.175.2.5天气功能.185.3日记列表.195.4信息安全功能.215.4.1数字密码.215.4.2图形密码.235.5搜索功能.245.6帮助功能.255.7关于.266测试用例.286.1系统测试.286.1.1系统测试过程中出现的问题.286.1.2系统测试目的与意义.286.2测试过程.286.2.1验证密码模块测试.286.2.2日记输入模块测试.296.2.3日记列表模块测试.296.2.4搜索模块测试.306.2.5信息安全模块测试.306.3非功能测试.316.3.1实时性测试.316.3.2安装/反安装测试.316.3.3兼容性测试.316.4用户界面测试.31总结.32参考文献.33致谢.34英文文献原文.35中文译文.4301绪论1.1课题背景近几年,我国经济迅速发展,科技日益更新,手机以潮流之势覆盖全球,手机搭载的开发技术也是迅速发展。最早的java系统,发展到后来的symbian,继而android淘汰了塞班,现在全球比较盛行的两大通用系统是android和IOS系统,最后微软公司又开发了windows平台,这些平台的大力发展,促进了手机行业的发展,同时带动了其搭载的软件行业的发展。android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁。其最震撼人心之处在于android手机系统的开放性和服务免费。手机的发展给人们的生活带来了极大的便利。我们常常需要记录生活,但是在纸质上写作已经不是那么的方便,我们需要需要一个地方,一个笔记本,一支笔来记录。所以在手机上开发一个日记本显得多么的迫切。因此,我的目标是做一款界面清晰,操作方便的日记本软件。1.2目的和意义在中国,手机已经成为人们日常生活必不可少的一部分,智能手机在高校人群中逐渐得到了普及,android手机凭借其优秀的系统性能以及良好的用户体验迅速得到了高校师生的青睐。在高校中,上课并不像高中时期有固定的教室和固定的时间,高校课程种类繁多,并且上课地点和时间不固定,一周内极少会出现重复课程,所以要将课程表完整的记忆下来是一项很艰难的事情,很多同学不得不随身携带一张课表来防止遗忘上课,但是还是不能完全避免该问题的发生,同时,作为一个当今高速发展的时代的成员,适应这个社会是必不能少的,在各种社交场合中,记住一些必须的信息很重要,而它们往往又繁琐又多,不易人为记住。基于这些问题,有必要设计一款方便小巧的简易日记本程序,可以让用户自定义文件,记住上课时间和地点,从而避免遗忘上课的事情出现,同时记住那些琐碎却有意义的小信息。而且,由于android系统市场的开放性和服务免费,它的应用程序方面就成了一块非常大的市场。1.3android平台及相关知识简介1.3.1android现状及发展相信大家对android的发展历史多少都有一些了解,android曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,并从此踏上了飞速发展的道路。经过这几年的发展,它已经发展成了一个平台、一个生态体系。现在android在移动领域已经得到了广泛的应用。根据Google于2011年6月份公布的数字,现在1每天激活的android设备高达50万台,比5月份的数据增加了10万台!Google还透露目前已经与36家OEM厂商和215家运营商合作,共激活了超过1亿台android设备。相比于Symbian的日落西山,以及苹果的封闭、WindowsPhone的前途未卜,android无疑代表了当前行业发展的主流趋势:开放平台取代了封闭平台。让参与者均能通过自己的努力而获益。从2008年9月公布1.0版本以来,经过近三年的跨越式发展,现在android已经发展到了3.x版本,这是一个针对平板电脑而做了大量优化的版本,包括对更大屏幕的支持的类库、多任务优化等。目前市场上占主流的还是2.2版本,当然,相信随着时间的推移,2.3及后续版本会得到越来越多的设备的支持。根据市场研究公司Gartner的统计数据显示,2010年第二季度,谷歌android移动操作系统的市场份额上升至17.2%,成功取代苹果IOS晋升为全球第三大移动操作系统。在移动操作系统市场上,排名第一和第二的是诺基亚的Symbian和RIM的黑莓,而这的市场份额分别是41.2%和18.2%。与此同时,应用与苹果iphone和其他苹果移动设备的IOS的市场份额则多出现下滑,跌至14.2%。在2010年第二季度一系列最新智能手机发布之后,android操作系统在美国个人消费者市场上销售的所有智能手机中所占份额为33%,超过RIM的28%和苹果的22%。基于android系统的智能手机已经进入到强劲的增长期,android第二季度在美国市场上的销售量同比大幅增长886%;尼尔森也公布报告称,android手机销售量已经超过了iphone销售量。1.3.2android系统特点近几年,3G的全球覆盖是世界快速步入了移动互联网时代,网络的应用范围变得更加广泛,移动智能终端在市场上迅速渗透,成为了移动互联网发展的强大动力。根据市场调研机构gartner发布的最新统计报告表示,2011年一季度全手机销量共4.278亿部,其中智能手机销量超过1亿部,现在高校师生的智能移动设备拥有率已经和PC拥有率相近。而智能手机操作系统中,android系统的市场份额又远远大于其他的手机操作系统。android是google与2007年11月5日发布的基于linux内核的移动平台,改平台有操作系统,中间件,客户界面,应用软件组成,是真正开放的移动平台。从软件的分层的角度来说,android平台是由应用程序,应用程序框架,android运行时库层以及linux内核共4部分组成。1.4开发工具1.4.1EclipseEclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C+和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE.Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。2IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。Eclipse项目IBM发起,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开放源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。1.4.2androidSDKandroidSDK指的是android专属的软件开发工具包。android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪鲁宾(AndyRubin)表示,与软件开发合作伙伴的密切接触正在进行中。从2007年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供android平台,并组建“开放手机联盟”,其成员超过30家。1.4.3android手机自带的sqlite轻量级数据库android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/shared_prefs目录下。SharedPreferences,它是android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。32可行性分析2.1背景软件开发的提出者是太原理工大学软件学院,作为该学院的学生,选择了基于android日记本的开发与设计的课题。开发者是该学院的学生廉若榕,该软件的适用用户为社会各界用户,适用范围是所有基于android操作系统的智能触屏手机。2.2可行性分析可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。对整个可行性研究提出综合分析评价,指出优缺点和建议。其目的是明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析以确定该项目是否可行。2.2.1技术的可行性本系统开发工具是eclipse和androidsdk,开发语言是Java,java是一种面向对象编程语言,简单易学而且灵活方便。因此,完成系统实现在技术上完全具有可行性。2.2.2经济的可行性开发此项目用到的代码都是开源的,为开发软件节省了大量的金钱,达到了低成本的目的。另外,本软件对android手机用户配置的要求不高,几乎每个人手中的手机都可满足。因此,开发该软件功能在经济上是完全可行的。2.2.3操作可行性该系统是本着界面简洁、操作方便的目的进行开发,主要目的是帮助使用者对日记进行存储、删除、搜索多方面管理。因此该系统在操作上具有功能简单,操作简洁的优势,完全可行。2.2.4法律的可行性在开发过程中不存在侵权问题。此外,开发该系统的目的仅仅是作为一款管理软件应用于手机,不存在与国家法律不符的目的。综上所述,该系统的开发在法律方面也是可行的。43需求分析3.1软硬件需求硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:android开发工具:Eclipse3.5.2开发语言:Java3.2性能需求3.2.1系统的易操作性为使使用者能够轻松操作该软件,需做到以下要求:(1)操作界面不涉及跳转,要操作的界面覆盖已显示的界面。(2)主要功能界面只有编写日记界面,其余都在功能菜单中实现。(3)在操作发生错误时出现友好提示。(4)在搜索中,只需输入日记中的关键字即可搜索。3.2.2数据的正确性与完整性(1)数据库设计过程中明确哪些数据可以为空,哪些数据不能为空。(2)关系表中的相关数据必须明确统一。3.2.3数据的安全性只有被授权的用户,即知道账户和密码的用户才可进入系统。3.3界面需求界面设计是整个设计很重要的一部分,好的界面不仅方便使用者操作,还可以使使用者有一个阳光的心情,更乐于记录生活,享受生活。因此界面的设计必须满足以下几点要求。(1)简易性界面的简洁是让用户便于了解,便于使用,并能减少用户发生错误选择的可能性。(2)用户语言界面中使用能反应用户本身的语言,而不是程序员的语言。(3)记忆负担最小化人脑不是电脑,在设计界面时必须要考虑大脑处理信息的限度。人类的短期记忆5极不稳定,且有限,24小时内存在25%的遗忘率。所以对用户来说,浏览信息要比记忆更加重要。(4)一致性一致性是每个优秀界面都具备的特点。界面的结构必须清晰且一致,与客户的需求一致。(5)清楚视觉上便于理解与使用。(6)用户熟悉程度用户可通过已掌握的知识来使用界面,但不应超出一般常识。(7)人性化高效率和用户满意度是人性化的体现。想用户所想,做用户所做,用户总是按照他们自己的方法理解和使用。(8)安全性用户做出危险的选择使有信息介入系统的提示。64系统概要设计4.1设计的基本思路设计思路遵循以下几点:(1)日记本只是简单的对生活心得进行记录、管理(2)模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。(3)效率第一。设计该软件的目的是让使用者从繁琐记日记过程中解脱出来,因此本系统必须达到提高效率的目的。(4)界面清晰明了,操作简单。方便用户使用,让用户能够在最短时间轻松方便的适应系统的操作。(5)系统设计不仅要功能完善还要突出重点。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。4.2系统用户用例图该系统只涉及使用者对日记进行存储、删除、搜索多方面管理。其所对应的功能模块分别是写日记模块、搜索模块、信息安全管理模块。此外,为方便用户在这三方面的操作,加入了帮助功能模块,对一系列操作进行了解释说明,这样做一方面能够解决用户使用过程中产生的困扰,更加简便了用户的使用。用户是能够正确输入用户名和密码的操作人员,且其享有全部权限。用户用例图十分清晰明了,如图4-1。图4-1用户用例图74.3系统流程图打开系统后,我们可以进行密码的验证等操作进入系统,系统会自动对密码进行验证,若密码正确,则会进入信息列表页面,若密码错误,则会提示密码错误、请重新输入等信息。进入信息列表页面后,可选择输入新的日记,查看之前编写的日记进行查看、修改、删除等,也可以对信息安全进行重设,修改密码等,或者查看编者信息、帮助等。系统流程图,如图4-2。图4-2系统流程图将用户名和密码设定,如本系统的用户名和密码都为123,如果客户输入错误,则要重新回到登录页面输入正确的账号密码。如果输入正确,即可进入用户操作页面进行相应的操作。在进一系列的操作如增加日记,删除日记或者重新设置密码等操作之后然后点击退出,用户即可退出该软件。84.4功能模块本系统本着界面简洁大方,操作简单的原则实现实现以下功能:(1)界面清晰分明、简单易用,任何人都能够在短时间内熟练操作。(2)用户享有存储、搜索、删除、安全设置三大权限。(3)增加主要功能的快捷键,增加操作的简易性。系统的功能结构图,如图4-3。图4-3系统功能模块图95系统功能实现此系统功能的实现需要两个主要阶段来完成,一是应用程序分析与设计阶段,二是系统成果实施验证阶段。系统开发工作主要是集中在逻辑、功能和技术设计上,所以开发设计阶段工作就显得尤为重要,对于设计该软件不需要数据库的设计,一开始就可直接进入具体的应用程序分析与设计的阶段。应用程序的分析与设计主要包括了应用程序各个功能模块的总体规划和分析、应用程序界面的选择与设计,以及应用程序结构的选择等部分,每一部分和小阶段都很重要,必不可少;而系统成果实施阶段要继承前面各个部分和阶段的工作,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。二者是相辅相成,相互依赖的关系。5.1密码验证登录界面描述:该功能可以实现密码的验证。为了用户的保密性,防止用户的信息外泄,在用户已经设置好密码之后,若再次进入,需输入正确密码来验证,这样才能达到保护用户的隐私,故须有此功能来实现用户的安全性。5.1.1数字密码验证(1)描述:在用户设置好数字密码后,再次登录只需输入数字密码即可进入。这个密码的相应设置在密码设置的数字密码功能处设置。(2)程序运行效果如图5-1所示:10图5-1数字密码验证(3)实现该功能代码:try/获取保存的数字密码sp=getSharedPreferences(pass,Context.MODE_PRIVATE);StringpassWay=sp.getString(passway,null);if(passWay.equals(digitalpass)isSet=sp.getBoolean(isSet,false);pass=sp.getString(password,null);if(isSet)LayoutInflaterfactory=LayoutInflater.from(Mainactivity.this);finalviewtextEntry=factory.inflate(R.layout.confirm_pass,null);/获取验证数字密码的输入框/显示验证数字密码的对话框AlertDialog.Builderbuilder=newAlertDialog.Builder(this).setTitle(getString(R.string.pass_con_title)/设置标题.setIcon(getResources().getDrawable(android.R.drawable.ic_lock_lock)/设置图标.setview(textEntry)/设置密码输入框.setCancelable(false)/设置点击非对话框不可取消11/为确定按钮添加监听器.setPositiveButton(getString(R.string.ok),newDialogInterface.OnClickListener()publicvoidonClick(DialogInterfacedialog,intwhich)/TODOAuto-generatedmethodstubcheckPass=(EditText)textEntry.findviewById(R.id.check_pass);if(checkPass.getText().toString().trim().equals(pass)try/获取本类中定义的对话框的显示方法Fieldfield=dialog.getClass().getSuperclass().getDeclaredField(mShowing);field.setAccessible(true);field.set(dialog,true);catch(Exceptione)e.printStackTrace();dialog.dismiss();elsetry/获取本类中定义的对话框的显示方法Fieldfield=dialog.getClass().getSuperclass().getDeclaredField(mShowing);field.setAccessible(true);field.set(dialog,false);catch(Exceptione)e.printStackTrace();Toast.makeText(Mainactivity.this,R.string.wrong_pass,Toast.LENGTH_LONG).show();checkPass.setText(););builder.create().show();5.1.2手势密码验证(1)描述:在用户设置手势验证密码功能成功后,再次打开只需输入手势即可验证进入。这个手势密码的相应设置在密码设置中的手势密码设置功能处设置,与12平时使用android系统手机的九宫图密码是一致的,极大地方便了用户。(2)程序运行效果如图5-2所示:图5-2手势密码验证(3)实现该功能代码:/获取保存的手势密码SharedPreferencespreferences=getSharedPreferences(pass,Context.MODE_PRIVATE);Stringpass=preferences.getString(lock_pwd,);/判断输入的手势密码是否与保存的一致if(pass.trim().equals(lockPatternUtils.patternToString(pattern)Intentintent=newIntent(CheckPassactivity.this,Mainactivity.class);startactivity(intent);CheckPassactivity.this.finish();elseToast.makeText(CheckPassactivity.this,R.string.wrong_pass,Toast.LENGTH_LONG).show();135.2日记本输入模块描述:该功能可以实现日记输入的增删改,自动生成的日期,使记录更加方便,同时也有天气的记录。5.2.1写日记(1)描述:日记本输入模块主要功能是输入文本信息,其中有可以输入文字,也可以关联图片,也可以输入系统中带的表情,更加丰富文本内容。(2)程序运行效果图如图5-3所示:图5-3写日记(3)日记完成以后保存日记的代码:/若当天日记未添加,则执行添加操作if(id=0)if(!diaryInfo.getText().toString().trim().equals()&diaryInfo!=null)StringinsertInfo=insertintoDIARY_INFO(date,week,weather,diaryinfo,fontsize)values+(+timeTextview.getText().toString()+,+weekTextview.getText().toString()+,+weatherSpinner.getSelectedItem().toString()+,+diaryInfo.getText().toString()+,+diaryInfo.getTextSize()+);try/将日记信息保存到数据库中14DataBaseHelperdbHelper=newDataBaseHelper(this,mydiary.db);SQLiteDatabasedb=dbHelper.getWritableDatabase();db.execSQL(insertInfo);db.close();catch(Exceptione)Log.d(WriteDiaryactivity,e.toString();this.finish();/若内容被修改则执行更新操作elseStringupdateInfo=UPDATEDIARY_INFOSETdate=+timeTextview.getText().toString()+,week=+weekTextview.getText().toString()+,weather=+weatherSpinner.getSelectedItem().toString()+,diaryinfo=+diaryInfo.getText().toString()+,fontsize=+diaryInfo.getTextSize()+whereid=+id+;try/将修改内容更新到数据库中DataBaseHelperdbHelper=newDataBaseHelper(this,mydiary.db);SQLiteDatabasedb=dbHelper.getWritableDatabase();db.execSQL(updateInfo);db.close();catch(Exceptione)Log.d(WriteDiaryactivity,e.toString();this.finish();5.2.2删除日记(1)描述:删除不需要的日记,进入日记编辑页面,菜单功能键中的删除键即可删除本篇日记。或者在日记列表中选中不需要的日记,长按即可删除。在此功能中利用了信息提示框,提示用户确认操作,更加人性化。(2)程序运行效果图如图5-4所示:15图5-4删除日记(3)删除功能的代码如下:/设置删除界面对话框AlertDialog.Builderbuilder=newAlertDialog.Builder(this);builder.setTitle(R.string.delete_comfirm);/设置标题builder.setIcon(android.R.drawable.ic_menu_delete);/设置图标/为确定按钮设置监听器builder.setPositiveButton(R.string.ok,newDialogInterface.OnClickListener()publicvoidonClick(DialogInterfacedialog,intwhich)/TODOAuto-generatedmethodstubtry/在数据库中删除日记信息DataBaseOperate.delete(id,WriteDiaryactivity.this);catch(Exceptione)/TODO:handleexceptionLog.d(WriteDiaryactivity,e.toString();onBackPressed();WriteDiaryactivity.this.finish(););165.2.3字体大小设置(1)描述:该功能模块可以对随用户对字体大小的敏感程度或者喜好,对字体的大小进行设置,更加人性化。在设计的过程中对三星GALAXYIII中的字体规模进行调查,在系统中对字体的各个规模进行了规定,设计合理。(2)程序运行效果图如果5-5所示:图5-5字体大小设置(3)字体大小选择的部分代码如下:/判断所选字体大小if(v.getId()=R.id.ll_font_small)if(sharedPreferences.getInt(font_size,0)=R.id.iv_small_select)this.finish();elseif(sharedPreferences.getInt(font_size,0)=R.id.iv_nomal_select)editor.putInt(font_size,R.id.iv_small_select);mit();WriteDiaryactivity.diaryInfo.setTextSize(14f);findviewById(R.id.iv_nomal_select).setVisibility(view.GONE);this.finish();5.2.4分享功能(1)描述:该功能模块可以以邮件或者信息或者微信等功能分享自己的心情日记,使17用更加多元化。(2)程序运行效果图如图5-6所示:图5-6分享功能(3)实现该功能代码:Intentintent=newIntent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_SUBJECT,分享);/设置分享标题intent.putExtra(Intent.EXTRA_TEXT,diaryInfo.getText();/设置分享内容intent.setType(text/plain);/设置分享内容类型intent.setFlags(Intent.FLAG_activity_NEW_TASK);/设置打开方式this.startactivity(Intent.createChooser(intent,getTitle();5.2.5天气功能(1)使用了下拉列表菜单功能,添加了几种天气供用户选择。在该功能下可以自己设置天气,没有使用联网设置,天气可以代表用户的心情,更加人性化。(2)程序运行效果图如图5-7所示:18图5-7天气功能(3)实现该功能代码:weatherSpinner=(Spinner)findviewById(R.id.weather);/天气选择下拉框/天气信息下拉框的适配器ArrayAdapteradapter=ArrayAdapter.createFromResource(this,R.array.weather,android.R.layout.simple_spinner_item);adapter.setDropDownviewResource(android.R.layout.simple_dropdown_item_1line);weatherSpinner.setAdapter(adapter);/为下拉框设置适配器weatherSpinner.setPrompt(getString(R.string.weather);/为下拉框设置标题5.3日记列表(1)描述:日记列表是对所写的日记进行排列,按照时间、日记生成的顺序,排列出日记的摘要,更方便用户查询,翻看,进行更多的操作。(2)程序运行效果如图5-8所示:19图5-8日记列表(3)实现该功能代码:/从数据库中获取日记信息DataBaseHelperdbHelper=newDataBaseHelper(activity.getBaseContext(),mydiary.db);SQLiteDatabasedb=dbHelper.getReadableDatabase();Cursorcursor=db.query(tableName,null,null,null,null,null,iddesc);listInfo.clear();while(cursor.moveToNext()MyDiaryInfoModelmyDiaryInfo=newMyDiaryInfoModel();Stringdate=cursor.getString(cursor.getColumnIndex(date);Stringweek=cursor.getString(cursor.getColumnIndex(week);Stringweather=cursor.getString(cursor.getColumnIndex(weather);StringdiaryInfo=cursor.getString(cursor.getColumnIndex(diaryinfo);floatfontSize=cursor.getFloat(cursor.getColumnIndex(fontsize);intid=cursor.getInt(cursor.getColumnIndex(id);/将取到的日记信息保存在对象中myDiaryInfo.setDate(date);myDiaryInfo.setWeek(week);myDiaryInfo.setWeather(weather);myDiaryInfo.setDiaryInfo(diaryInfo);20myDiaryInfo.setFontSize(fontSize);myDiaryInfo.setId(id);/将对象放到list中listInfo.add(myDiaryInfo);cursor.close();db.close();5.4信息安全功能(1)描述:该功能可以实现对日记的保密工作,分为数字密码和图形密码两个部分。多种选择供用户选择,方便使用。(2)程序运行效果如图5-9所示:图5-9信息安全功能5.4.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论