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

下载本文档

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

文档简介

i基于android个人记账本的设计与开发摘要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的个人记账手机软件。关键词Java;Android;记账;智能手机平台iiBasedontheandroidpersonalaccountthedesignanddevelopmentAbstractWiththerapidproliferationofsmartphones,smartphoneoperatingsystemmarket,windandwater.InorderforsmartphoneuserstochecktheInternetanytime,anywhereservicesprovidedanefficientwaytoexpandthefunctionofthesystemwillbeappliedtothemobilephoneterminal,themobilephonetoInternetaccessviamobilenetworks,andvarietyofWebsitesandprocessbusiness.Therefore,thesmartphoneapplicationsandtheneedfortheservicewillhavebroadprospectsfordevelopment.Intodayssmartphonesystemwhendisputeswarlords,2008,GoogleintroducedasmartphonecalledtheAndroidopensourceoperatingsystem,whichusesLinuxkernel,OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,thesystemIthasagoodopen-sourcenatureoftheexpansionof.Thesoftwareincludestheoperatingsystem,userinterfaceandapplicationsthatneedtoworksmartphonesallthesoftware.Androidsbiggestfeatureisitsopenarchitecture,notonlyhasaverygooddevelopmentanddebuggingenvironment,butalsosupportsavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupport,andpowerfulbrowser.Therefore,forsoftwareprofessionalsis,Androidplatformhasunlimitedappeal.Inthispaper,theanalysisanddiscussionAndroidmobilephonesoftwaredevelopmenttechnologyonthebasisoftheprinciple,developedtoprovideuserswithbetterplatformtothepersonalchargebasedonAndroidmeteorologicalsoftware.KeywordsJava;Android;charge;smartphoneplatformiii目录摘要.iAbstract.ii1绪论.11.1选题背景.11.2选题目的与意义.11.3课题研究内容.22相关开发工具简介.32.1Android及SDK介绍.32.2Eclipse简介.32.3SQLite简介.42.3.1SQLite的特性.42.3.2用JAVA连接SQLite.53需求分析与可行性分析.73.1可行性分析.73.1.1技术可行性分析.73.1.2经济可行性分析.73.1.3法律可行性分析.73.1.4开发人员与进程可行性分析.83.1.5结论意见.83.2需求分析.83.2.1特性需求分析.83.2.2功能需求分析.84总体设计.94.1系统设计.94.1.1系统设计目标.94.1.2系统主控流程图.94.1.3E-R图.104.1.4系统功能结构图.114.2界面设计.124.2.1欢迎界面设计.124.2.2增加账单界面设计.124.2.3查询账单界面设计.124.2.4删除账单界面设计.135详细设计与实现.145.1系统流程分析.145.1.1系统部署图.145.2用户基本功能.145.2.1增加账单模块.155.2.2查询账单模块.235.2.3删除帐单模块.266系统测试与性能分析.286.1软件测试.286.1.1软件测试概述.286.1.2系统整体测试步骤.286.2个人记账本系统测试.296.2.1增加账单模块测试.296.2.2查询账单模块测试.306.2.3删除账单模块测试.306.2.4测试结果评价.30总结.31参考文献.32致谢.33外文原文.34中文翻译.4411绪论二十一世纪是一个以高科技为核心知识经济占主导地位的时代,而信息作为整个社会最主要的资源,将成为强大的战略资源,引起人们广泛的关注。信息化时代的到来已经成为不可抗拒的洪流,人类的文明已经在进入信息化时代。Android手机发展迅速,以成为移动通讯设备的主流。Android比原来的手机系统具有很大的优势,其友好的用户见面、简易流畅的操作模式带来了前所未有的用户体验,其开源性、可移植性、高效的开发环境对Android的开发者提供了很大的便利,所以Android手机的兴起是必然的。目前随着国内居民收入消费水平的日益增高,理财意识的不断增强,个人理财市场持续夸大规模已成为不争的现实。1.1选题背景随着科学技术的迅速发展,人类已经从农业社会,工业社会迅速进入了信息社会,人们的生活方式、思维方式、工作方式以及教育方式等都随之发生了相应的改变。如今,信息技术以令人咋舌的速度飞速发展,深入到全球各地的各个领域,它对全球的影响是相当巨大的其巨大的力量改变了人类的生活,“数字化”的概念应运而生,数字产品越来越贴近人们的生活,随之而来的就是人们不断追求更多的便捷享受,更多地娱乐氛围。十年前的手机仅仅作为一个通信设备出现在人们的面前,而如今,手机俨然已经成为了个人的小型计算机。各种各样的手机,纷乱复杂的各种软件,不断改变着用户的使用态度,不断催生着人们的好奇心。随着移动平台的不断成熟与互联网的不断发展,手机等移动设备已经极大地普及,人们可以在随时随地用指尖去完成各种以往繁琐的事情。由于在生活中大家都不愿意做“月光族”,所以,很多人有了日日记账的习惯。但是,随时带个笔记本是如此的不现实,生活中大家又都离不开手机以及考虑到Android系统的迅速发展和极高的普遍率,这款基于Android的个人记账本便应运而生了。1.2选题目的与意义随着经济社会的高速发展,人们的生活水平也在飞速的提高,同时人们的收入和消费水平也得到了很大的提升,也从过去的单一输入和消费变成了今天的多元化收入和消费模式。尤其是我们80、90后青年人,对现在新型消费有非常高的热情,但是这2样给在高速发展的消费经济情况下的我们带来了一些意想不到的负面影响,不能很好的理财,这给我们的物质生活带来了不少的麻烦。随着大家理财意识的逐渐增强,不同功能的个人理财系统便由此产生了。该软件是开发一个基于Android平台的个人记账本,可以很轻松的实现平时简单的记账、查账、删账等功能。可以很好的帮助我们实现随时随地轻松记账,实时理财。同时也让自己能够了解最新的Android开发只是,熟悉SQLite的使用,拓展能力和渠道,熟悉软件开发方法。1.3课题研究内容记账就是把一个企事业单位或者个人家庭发生的所有经济业务运用一定的记账方法在账簿上记录;是指根据审核无误的原始凭证及记账凭证,按照国家统一会计制度规定的会计科目,运用复式记账法对经济业务序时地、分类地登记到账簿中去。你不理财,财不理你。清楚自己的每一天收支状态是非常重要的。软件中可方便添加资金支出记录,也可查找以前记录下的所有消费细节,有它在手,节约无忧。可以很方便的随时记录下你的收入和各种消费情况,也可以很方便的查看日,周,月,年的明细列表。个人记账本,便携的android个人记账本软件,操作简单功能强大。是必备的日常理财软件。342相关开发工具简介2.1Android及SDK介绍Android是Google公司推出的手机开发平台,和iPhone相似,Android使用了WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,在手机上可以实现查看电子邮件、搜索网址和观看视频节目等功能,较iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一台。Android是一个以Linux为基础的半开源操作系统,主要用于行动设备,由Google和开放手持设备联盟开发与领导。Android系统最初由安迪鲁宾(AndyRubin)制作,最初主要支持手机。2005年8月17日被Google收购。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(OpenHandsetAlliance)来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。Android手机系统最震撼人心之处在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁,使得应用的安装更加方便;同时与WindowsMobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。Android平台的五大优势:开放性挣脱运营商的束缚丰富的硬件选择不受任何限制的开发商无缝结合的Google应用SDK指是软件开发工具包,一般被一些软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此,AndroidSDK指的既是Android专属的软件开发工具包。5它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。为了鼓励开发者使用其系统或者语言,许多SDK是免费提供的。软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构件SDK以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。2.2Eclipse简介Eclipse是一个著名的跨平台的自由集成开发环境软件。最初主要用来Java语言开发,现在人们可以通过安装插件使其作为C+、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是随着众多插件的产生,使得Eclipse拥有很好的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。虽然大多数用户更加乐于将Eclipse当作Java集成开发环境来使用,但Eclipse的作用已经不仅限于此。Eclipse还是含有插件开发环境,这个组件允许希望扩展Eclipse的软件开发人员构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C+和COBOL等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。本软件即通过Eclipse,添加Android做插件,匹配上AndroidSDK进行软件的开发。2.3SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开6源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。至今已经有13个年头,SQLite也迎来了一个版本SQLite3已经发布。SQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。2.3.1SQLite的特性1.ACID事务2.零配置无需安装和管理配置3.储存在单一磁盘文件中的一个完整的数据库4.数据库文件可以在不同字节顺序的机器间自由的共享5.支持数据库大小至2TB6.足够小,大致13万行C代码,4.43M7.比一些流行的数据库在大部分普通数据库操作要快8.简单,轻松的API9.包含TCL绑定,同时通过Wrapper支持其他语言的绑定10.良好注释的源代码,并且有着90%以上的测试覆盖率11.独立:没有额外依赖12.源码完全的开源,你可以用于任何用途,包括出售它13.支持多种开发语言,C,PHP,Perl,Java,C#,Python,Ruby72.3.2用JAVA连接SQLite先下载SQLite数据库的JDBC将下载到的包解压后得到jar包sqlitejdbc-v033-nested.jar放到%JAVA_HOME%lib下,并且将其添加到classpath系统环境变量中,我的classpath系统环境变量现在为:.;%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%JAVA_HOME%libsqlitejdbc-v033-nested.jar在你的代码中引用这个驱动:Class.forName(org.sqlite.JDBC);Connectionconn=DriverManager.getConnection(jdbc:sqlite:filename);/filename为你的SQLite数据名称/.usethedatabase.conn.close();示例程序如下:importjava.sql.*;importorg.sqlite.JDBC;/*这是个非常简单的SQLite的Java程序,*程序中创建数据库、创建表、然后插入数据,*最后读出数据显示出来*/publicclassTestSQLitepublicstaticvoidmain(Stringargs)8try/连接SQLite的JDBCClass.forName(org.sqlite.JDBC);/建立一个数据库名zieckey.db的连接,如果不存在就在当前目录下创建之Connectionconn=DriverManager.getConnection(jdbc:sqlite:zieckey.db);Statementstat=conn.createStatement();stat.executeUpdate(createtabletbl1(namevarchar(20),salaryint););/创建一个表,两列stat.executeUpdate(insertintotbl1values(ZhangSan,8000););/插入数据stat.executeUpdate(insertintotbl1values(LiSi,7800););stat.executeUpdate(insertintotbl1values(WangWu,5800););stat.executeUpdate(insertintotbl1values(ZhaoLiu,9100););ResultSetrs=stat.executeQuery(select*fromtbl1;);/查询数据while(rs.next()/将查询到的数据打印出来System.out.print(name=+rs.getString(name)+);/列属性一System.out.println(salary=+rs.getString(salary);/列属性二rs.close();conn.close();/结束数据库的连接catch(Exceptione)9e.printStackTrace();编译运行:E:CodingjavatestjavacTestSQLite.javaE:CodingjavatestjavaTestSQLitename=ZhangSansalary=8000name=LiSisalary=7800name=WangWusalary=5800name=ZhaoLiusalary=9100总结:本文介绍了嵌入式数据库SQLite在Java中的应用,通过创建表、插入数据、查询等操作介绍了在Java中对数据库的操纵。10113需求分析与可行性分析3.1可行性分析首先进行系统的可行性分析。可行性分析是在目前市场已有的相关内容调查基础上,辨证新软件的研发是否具备开发的必要性和坑内性,对新软件的研发从技术、经济社会因素等多个方面进行相关的分析和研究,以避免造成不必要的资金失误,保证和提高新软件开发成功的把握。可行性研究的目的就是以最小的时间、金钱代价确定疑难问题是否能够妥善解决。近些年,移动设备的高速发展,使得手机等移动设备高速智能化,移动网络通信正在以前所未有的惊人速度走入人们的生活、工作和学习中,提高了工作学习的效率,增加了获取信息的渠道,突破了相互交流的时空界限。个人记账本可以基于移动平台安卓系统进行开发,帮助我们解决生活中的个人资金理财问题。可行性分析既不能以偏盖全,也不能过于追求细节,必须为决策提供有价值的证据。软件领域的可行性分析主要考虑四个因素:技术可行性分析,经济可行性分析,法律可行性分析,开发人员与进程可行性分析。3.1.1技术可行性分析合理的建立数据库,开发个人记账本实现安全性、高效性管理在技术上是可行的。安卓系统是基于Java编写的,因此手机客户端采用Eclipse配上AndroidSDK,完全可以实现系统功能,开发人员都具有一定Java功底,加之Android平台开放性,网上很轻松的可以查看到各种实现代码,手机客户端在技术上是可行的。因此,系统的软件开发平台是成熟可行的。在硬件方面,科技飞速发展,硬件更新的速度日新月异,容量变得原来越大,可靠性变得越来越高,价格变得越来越低,其硬件水平完全能够满足此软件开发和使用的需要。3.1.2经济可行性分析从成本方面看,本系统的实现,计算机和网络硬件已经拥有,由于安卓是个开放的平台,Eclipse与AndroidSDK都是免费提供的,网络客户端所用软件也都已经配备,因此不需要经费预算等。123.1.3法律可行性分析从法律角度看,Android是个开放的平台,代码是开放的,作为毕业设计,并不以盈利为目的,且是自主开发设计,因此不会在社会上引起侵权或其它责任问题,在法律上是可行的。3.1.4开发人员与进程可行性分析开发人员都有一定的Java开发功底,并且有指导老师的悉心教导完全可以胜任此次开发。由于此系统开发并不是以盈利为目的,开发周期可以相对较长,因此开发进程方面是可行的。3.1.5结论意见综上所述,此软件开发在不同角度都可行,并且投入少量的工作就能达到明显的效果,故可以确定该系统能够开发。3.2需求分析3.2.1特性需求分析一个较好的软件应具有以下特性:(1)易操作和功能简单明确不令人误解。一个良好的个人记账本应该功能明确,用户可以很明了的通过界面介绍明白各项功能的实现方法,而不是看到界面不知道各按钮的具体用途,即操作简单,界面友好易懂。用户可以根据手机界面很清楚地进行记账、查账、删除等功能。(2)软件功能流畅。软件在运行不能发生崩溃,卡顿等问题,整个界面操作起来很流畅。(3)软件易维护。系统各个模块设计应该很明确,核心代码处应有必要的注释,使得今后的软件维护能够顺利地进行。3.2.2功能需求分析用户应该能实现增加账单,查询账单,删除账单三大功能。13用户增加账单:用户根据日期记录当天支出情况和收入情况,系统生成报表,便于用户进行查看、删除等操作。用户查询账单:用户根据日期(月份)进行选择查询账单。用户删除账单:用户根据需要删除已记录的账单。系统设置:系统版本及该软件的基本信息。4总体设计总体设计是完成系统的总体方案和总体技术途径的设计过程。总体设计是工程项目开发过程中的一个重要阶段。4.1系统设计系统设计又称为物理设计,是开发管理信息系统的第二阶段。系统设计是开发人员进行的工作,他们将系统设计阶段得到的目标系统的逻辑模型转换为目标系统的物理模型,该阶段得到工作成果是下一个阶段系统实施的工作据。4.1.1系统设计目标预期本系统将通过对欢迎界面、用户的日常收支信息管理模块、统计信息管理模14块、删除信息管理模块四个模块的实现,能基本满足用户的需求,使用户能够方便、快捷的进行个人财务处理。自己熟悉了开发过程,同时生成了各个阶段的文档,完成毕业设计。4.1.2系统主控流程图流程图是系统分析时产生的逻辑模型(为后面建立E-R概念模型,系统设计做好稳定的信息模型基础),即描述系统的输入数据、处理功能、输出数据,功能模块间及对应部门之间的信息流动关系。系统的流程图符号说明如表(4-1)所示:表4-1系统业务流程图符号说明符号名称说明处理能改变数据值或数据位置的加工或部件实体数据的源点/终点数据流用于连接其他符号,指明数据流动方向决策用于选择系统主控流程图主要描述了个人记账管理的流程,如图(4-1)所示:开始开始开始15个人记账管理系统收支显示收支删除收支保存结束开始开始16图4-1系统主控流程图4.1.3E-R图ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。对用户需求做以下分分析,从用户的角度看到的或需要的系统功能,在本系统的建模中:从用户角度应该有简单的添加账单、查询账单、删除账单三个基本功能。根据系统的需求分析及功能分析可做如图(4-2)的E-R图所示:查询账单删除账单用户添加账单查询月份17图4-2E-R图4.1.4系统功能结构图本系统包括:欢迎界面模块、用户日常收入支出信息管理模块、统计管理模块、删除管理模块四个模块。如图(4-3)所示:个人记账管理收支时间收支方式金额备注公司/个人个人记账本欢迎界面删除信息管理统计信息管理日常收支信息管理18图4-3系统功能结构图4.2界面设计4.2.1欢迎界面设计欢迎界面为进入系统的首界面,首界面只显示图标与“即将进入您的私账本”字样。随之便进入到增加账单界面。4.2.2增加账单界面设计用Linearlayout布局整体分为六行:账目类型、填入金额、选择时间、公司/个人管理、备注、保存与取消按钮。如下图(4-4)所示:账目类型填入金额选择时间公司/个人备注19图4-4增加账单界面4.2.3查询账单界面设计同样也是用Linearlayout布局,整体分为几部分。第一部分是标题:账目、费用、日期、备注第二部分就是用户的账单报表第三部分是统计:当月收入、支出、合计。如下图(4-5)所示:图4-5查询账单界面当在查询账单界面按下菜单键时,会弹出“选择月份”。之后可以进行选定月份的账单查询。4.2.4删除账单界面设计当删除某项明细时,是在查询账单的基础上进行的长按某项明细,会弹出一个对话框。之后选择是否删除。对话框的布局只是简单的提示与按钮。对话框的格局如图(4-6)所示:取消保存账目费用日期备注用户的账单报表当月收入:支出:合计:20图4-6删除账单界面警示图标确定要删除明细?确定再看看215详细设计与实现软件名称:个人记账本。其他子系统的关系:本系统为独立的系统,目前没有与之发生关系的其他子系统。用户范围:所有的Android用户均可使用该软件。文档概述:根据需求分析,对软件的各项功能实现进行设计。文档的预期读者为软件开发者及用户。5.1系统流程分析本系统设计是基于Windows系统下的Android系统平台上,系统设计遵循了Android软件设计的系统模式。本系统UI布局是在layout文件夹下的xml文件中设计完成的。每个界面是一个activity,并在activity中加载这些用户UI界面。在value文件夹中定义字符串信息,整个系统结构根据Google公司公布的Android软件开发目录结构来进行。225.1.1系统部署图系统部署图如下图5-1所示,本系统是基于Android系统的手机端应用软件,是一款轻量级手机应用软件,其中不涉及到网络应用,所以不存在服务器,其中软件部署运行存在两种方式,一种是IDE集成开发环境的模拟器,另一种则是基于Android系统的只能终端手机系统。本系统软件在Android模拟器和移动手持设备下的安装部署图。系统部署图如下图(5-1)所示:软件运行安装软件打包install图5-1系统部署图5.2用户基本功能用户功能基本分为添加账单,查询账单,修改账单三大功能。各项功能模块如下描述。欢迎界面,代码解释如下:界面设计采用RelativeLayout(相对布局)。分两大块儿,ImageView与TextView。Android模拟器IDE集成开发环境Android系统智能手机AndroidAPK包23/ImageView直接引用drawable里的图片,再做简单的调整。(此处省略代码)/设置组件的文字引用来源界面效果图,如图(5-2)所示:图5-2等待进入软件界面245.2.1增加账单模块用户进行日常的收入支出信息管理。界面设计代码:/整个界面选择用线型布局,这样明了,且方便修改。/第一个线型布局。线型布局里套用线型布局更合适。/拉伸/线型的第一栏为“帐目类型”。将其设置为TextView,大小布局等根据整体布局。/第二个线型布局,分为左右TextView、EditText、TextView/左边设置TextView,将其设置为“填入金额”。/中间设置为EditText,将其设置为用户输入金额的输入栏。/右边设置为TextView,只显示输入金额的单位,为“元”。25/第三个线型布局,设置TextView为“选择时间”。此处省略代码。/第四个线型布局,设置增加账单的Date与time。下面只是“Date”的设置,“time”的设置类似,所以省略不写。/添加组件Button为“+”,点击“+”即可修改时间(默认时间为当前时间)。/设置字体为加粗/第五个线型布局,设置选择账单是“个人或是公司”。/这里需要一个下拉列表(Spinner),用来选择个人/公司。/接下来是“备注”一栏,与编辑框EditText的设置。(此处省略)/最后是两个按钮“保存”、“取消”的设置。(省略取消)27增加账单界面,如图(5-3)所示:图5-3增加账单界账目类型有支出与收入,如图(5-4)所示:28图5-4账目类型界面其中支出又包括生活用品、水电煤气费、汽油费、其他几项,如图(5-5)所示:收入包括工资与其他两项,如图(5-6)所示:图5-5收入类型图5-6支出类型29填入金额:金额可为整数与小数部分。/设置日期与时间的修改protectedvoidonPrepareDialog(intid,Dialogdialog)switch(id)case1:(TimePickerDialog)dialog).updateTime(mHour,mMinute);break;case2:(DatePickerDialog)dialog).updateDate(mYear,mMonth-1,mDay);break;privateDatePickerDialog.OnDateSetListenermDateSetListener=newDatePickerDialog.OnDateSetListener()publicvoidonDateSet(DatePickerview,intyear,intmonthOfYear,intdayOfMonth)mYear=year;mMonth=monthOfYear+1;mDay=dayOfMonth;setDatetime();30;privateTimePickerDialog.OnTimeSetListenermTimeSetListener=newTimePickerDialog.OnTimeSetListener()publicvoidonTimeSet(TimePickerview,inthourOfDay,intminute)mHour=hourOfDay;mMinute=minute;setDatetime();privatestaticStringpad(intc)if(c=10)returnString.valueOf(c);elsereturn0+String.valueOf(c);31选择时间:时间有年月日,几点几分。效果图,如图(5-7)、图(5-8)所示:图5-7日期修改图5-8时间修改/设置日期,year,month,day。以下是实现代码:privatevoidinitTime()Calendarc=Calendar.getInstance(TimeZone.getTimeZone(GMT+08:00);mYear=c.get(Calendar.YEAR);mMonth=c.get(Calendar.MONTH)+1;mDay=c.get(Calendar.DAY_OF_MONTH);mHour=c.get(Calendar.HOUR_OF_DAY);mMinute=c.get(Calendar.MINUTE);32/设置时间,hour,minuteprivatevoidsetDatetime()mDate.setText(mYear+-+mMonth+-+mDay);mTime.setText(pad(mHour)+:+pad(mMinute);/设置对话框,弹出日期、时间protectedDialogonCreateDialog(intid)switch(id)case1:returnnewTimePickerDialog(this,mTimeSetListener,mHour,mMinute,false);case2:returnnewDatePickerDialog(this,mDateSetListener,mYear,mMonth-1,mDay);returnnull;公司/个人:账目类型要分开是个人的还是公司。如图(5-9)所示:33图5-9记账类型备注:备注是为了以后用户查账的时候清晰明了。保存与取消按钮:直接选择是否保存。/当添加账单完成之后,点击“保存”按钮,保存成功;点击“取消”按钮,取消保存。以下是实现代码:publicvoidonClick(Viewv)if(v.equals(edittext_acctitem)Log.v(ColaBox,cmd=edittext_acctitem);/testEditorsharedata=getSharedPreferences(data,0).edit();sharedata.putString(item,hellogetSharedPreferences);mit();Intentintent=newIntent();intent.setClass(Frm_Addbills.this,Frm_Editacctitem.class);startActivityForResult(intent,RG_REQUEST);34elseif(v.equals(BtnTime)showDialog(1);elseif(v.equals(BtnDate)showDialog(2);elseif(v.equals(BtnCancel)cancel();elseif(v.equals(BtnSave)save();intfee=0;Strings=Fee.getText().toString();intpos=s.indexOf(.);/Log.v(cola,i=+(s.length()-pos);if(pos0)if(s.length()-poselement,theandroid:iconattributepointstoresourcesforaniconthatidentifiestheapplication.Intheelement,theandroid:nameattributespecifiesthefullyqualifiedclassnameoftheActivitysubclassandtheandroid:labelattributesspecifiesastringtouseastheuser-visiblelabelfortheactivity.Youmustdeclareallapplicationcomponentsthisway:elementsforactivitieselementsforserviceselementsforbroadcastreceiverselementsforcontentprovidersActivities,services,andcontentprovidersthatyouincludeinyoursourcebutdonotdeclareinthemanifestarenotvisibletothesystemand,consequently,canneverrun.However,broadcastreceiverscanbeeitherdeclaredinthemanifestorcreateddynamicallyincode(asBroadcastReceiverobjects)andregisteredwiththesystembycallingregisterReceiver().59DeclaringcomponentcapabilitiesAsdiscussedabove,inActivatingComponents,youcanuseanIntenttostartactivities,services,andbroadcastreceivers.Youcandosob

温馨提示

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

评论

0/150

提交评论