android记事本设计与实现大学本科毕业论文.doc

上传人:可**** 文档编号:91258055 上传时间:2023-05-24 格式:DOC 页数:26 大小:478KB
返回 下载 相关 举报
android记事本设计与实现大学本科毕业论文.doc_第1页
第1页 / 共26页
android记事本设计与实现大学本科毕业论文.doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《android记事本设计与实现大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《android记事本设计与实现大学本科毕业论文.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、摘 要手机记事本,是一项新兴且有广阔市场和应用价值的业务,它运行于android智能手机上,通过手机的显示终端与手机内数据库的通讯,提供给客户各种与日程相关的信息服务,方便了用户的日常生活安排。本论文主要阐述了手机日程表服务系统的需求分析、功能模块的设计、系统流程和界面设计,并对系统实现过程中所用到的关键技术进行了介绍。本文所实现的日程表是基于Android平台开发的,主要使用人群定位为在校大学生,主要可以对上课的时间地点进行输入,然后在上课之前对用户进行提醒,从而满足了在校大学生对基本日常生活的安排和记录的需求。关键词:Android;手机记事本;ABSTRACTMobile schedul

2、e, and there is an emerging market and the value of broad business, which benefits real-time monitoring alarm technology, through the copper phones display terminal with the phone in the database shall be available to customers with a variety of related information services schedule facilitate the u

3、sers daily routine. This paper describes the need for phone service schedule system analysis, design, system processes and interface design function modules, and systems to achieve the key technologies used in the process were introduced. In this paper, the schedule is implemented based on the Andro

4、id platform, the main use of the crowd standing for college students, the main place of class time can be entered, and then before the class to remind the user to meet the basic daily college students living arrangements and recording needs.Keywords:Android;schedule目 录1引言11.1手机记事本的产生11.2手机记事本的发展现状12

5、 Android及相关技术简介32.1 Android简介32.2相关编程语言6 2.2.1 xml简介6 2.2.2 java简介73 需求设计931系统需求分析9 3.1.1功能分析9 3.1.2性能分析94系统设计104.1系统设计目标104.2系统功能模块设计104.3用户界面设计114.4数据库设计125 系统的实现145.1主要界面实现145.2数据库功能的实现176 总结与致谢22参考文献231 引言11手机记事本的产生随着android手机售量的大量提升,android应用也变得十分火热。在庞大的用户群体中,人们已经习惯了把需要处理的事物记录在手机上。虽然用户群体庞大,但是个人

6、的业务需求也不完全相同,即使大的厂商对android的日历进行了修改,但并不能满足部分用户的特殊需求。这时能够针对某一或者某些用户群体的定制记事本就十分的必要,这次所开发的记事本主要针对的用户群体是在校大学生。由于手机又存在着诸多的特性,所以与纸质的记事本相比,手机记事本存在着诸多的优点和特性。手机记事本的优点:移动性和便携性,手机用户可以自由的移动。可重复擦写,多次使用具有一定的隐私性。可实时提醒,这一点在事务越多的时候越是能体现出优势。12手机记事本的发展现状随着计算机和手机的飞速发展,通过电子设备来完成更多的事情将是一种趋势。在效率越来越被重视的当今社会,及时妥善的的处理事务的前提就是准

7、确地记录事务。使用记事本的意义不仅仅是及时处理事务,也是对各种事务有着认真负责的态度的体现。手机记事本的便捷性是有目共睹的。随着业务的扩展,其作用、形式、工作方式必然也会有极大地改变和发展,所以记事本的发展现状也是十分值得我们去关注的。下面就简要阐述一下记事本的发展现状:个性化随着社会的发展,不同人群对记事本的需求必然不会相同,不同需求的人群都希望从记事本服务中得到的不仅仅是方便,还有效率和效益。学生可能希望把课程表记录在手机上,白领可能希望把领导交代的事务处理好,女生需要记录经期,而个性化的记事本可能就是一个十分方便的解决方案,人们可以下载部分或全部的功能,既能满足自己的需求,又能避免了手机

8、存储空间的浪费。 保密化手机记事本作为一项提高效率的应用,对人们生活的影响是积极的。一方面,它可以提高人们的效率。另一方面,记事本本身的效率也是应该值得重视的,例如大学生的课程表并不是相同的,如果单纯的用人工录入的话也是一件十分耗费体力和时间的事情,这时校园网的课程表如果能提供标准化的统一接口,我们的应用就能变得十分的方便快捷,只需要简单的几步就能把校园网的课程表同步到手机应用。再比如公司如果统一布置任务,只需要在会议结束后对通过各种通信方式把任务布置给各个职员,甚至是使用NFC技术,只需要手机轻轻一碰就能达到目的,这时统一的标准化的接口就变得十分的重要。保密化手机作为随身携带的便携设备,存在

9、着巨大的丢失的风险,记录着诸多信息的手机一旦丢失,损失将是巨大的,如果落在有心的人手中,必然会有带来不必要的损失。所以对于信息的保密必然是十分重要的。但在保密的同时又保证用户的使用的便捷也是一个难题。云端化云端化是将来计算机和手机领域的大热门,云端化有着诸多的优点,但是又有其局限性,云端化的首要条件是网络接入速度的大幅度提升,并且能够满足人们对于数据同步的需求。云端化同样也是保密的一种解决方法,又是能够暴露统一的接口的一种解决方案,所以云端化必然是将来的重要的趋势,即使我们换了手机,换了电脑,还是能够获取到自己既定的事务或者是其他数据。2 Android及相关技术简介Android是Googl

10、e于2007年11月推出的一款全新的智能手机平台,由操作系统、中间件、用户界面和应用程序组成。由于Android平台的诸多优点和特性,使其在短短的几年中飞速的发展。随着用户群体的增加,使得Android应用开发也成了学习的热门。2.1Android简介1)Android平台优点 Android一词的本义指“机器人”,同时也是一款布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。作为一款手机操作系统,其有着如下的诸多优点:平台的开放性允许任何厂商加入,使其拥有更多的开发者,新的应用还有创意可以不断的出现。摆脱了运营商的束缚,让手机更加贴近互联网。A

11、ndroid应用程序都是基于Java开发的,Java具有一次编写、到处运行的跨平台性。实现了能够在所有的Android设备中运行,真正做到了硬件无关性,降低了开发者的负担。提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用已有的程序,从而打造出富有特色的Android平台。2)Android平台的特征应用框架:用于开发可重用、可替代的组件。Linux kernel:Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、

12、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。优化的

13、图形:Android提供了优化过的图形系统, 该系统由一个自定义的2D图形库和一个遵循OpenGL ES 10标准(硬件加速)的3D图形库组成。SQLite数据库:SQLite数据库是Android自带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库。媒体功能:支持各种通用的音视频和静态图像格式。硬件支持功能:支持相机、GPS、导航和感应加速器等各类硬件。强大的开发环境:包括设备模拟器,调试工具,内存和性能检测工具,以及Eclipse IDE的开发插件。3)Android平台的体系架构Android不仅是一个操作系统,更是一个开源的体系架构。Android软件平台从上到下主要由五

14、个部分构成:应用程序、应用程序框架、程序库、Android运行库以及Linux内核。应用程序(Application)Android的应用程序通常涉及用户界面和用户交互。Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。做为分层结构的最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。同时开发者可以使用应用程序框架层的API实现自己的程序,这也是Android开源

15、优势的体现。 应用程序框架(Application Framework)Android应用程序的开发基于程序框架和组件,开发人员拥有同核心应用程序一样的API访问权限。应用程序后面是一系列的服务和系统,其中包括:视图(Views)一构造应用程序的视图部分,包括列表(Lists)、文本框(Textboxes)、按钮(Buttons)等。内容提供器(Content Providers):提供一种实现数据互访和共享的机制。资源管理器(Resources Manager):负责管理非代码的访问,如本地字符串、图片资源及涉及布局的XML文件。通知管理器(Notification Manager):用于将

16、提示信息显示在状态栏上。例如,当有短信的时候,在状态栏上显示有新信息。活动管理器(Activity Manager):用于管理应用程序的生命周期,并提供应用页面退出的机制。通过这套应用框架,各种服务和组件可以被用户的应用重复利用。4)Android应用程序构成对于一个Android应用程序来说,一般由以下四种组件构造而成:ActivityActivity是最基本的Android应用程序组件。在应用程序中,一个Activity通常就是一个单独的屏幕。每一个Activity都被实现为一个独立的类,并继承基类Activty。Broadcast Intent Receiver当需要对一个外部事件(如当

17、电话呼入)做出响应时,可以使用目的接收器(Intent ReceiveO。目的接收器并不显示IJI界面,当外部事件发生时,使用Notification Manager通知用户。Service Service是具有长生命周期且没有用户界面的一段程序,它需要通过某一个ActMty或者Context对象来调用。Service的生命周期方法比Activity少一些,只有onCreate、onStart和onDestory。有两种方式用来启动Service,它们的不同之处在于对Service生命周期的影响不一样。Content Provider 一个应用程序可以将它的数据保存到文件、SQL数据库,甚至是

18、任何有效的存储设备中。当需要将应用数据与其它的应用共享时,使用Content Provider来完成。Content Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型。5) Android应用程序的开发环境Android通常采用Eclipse作为应用程序的开发环境。Eclipse是基于Java的,开放源代码的可扩展开发平台。就其本身而言,它只是一个框架和一个服务,所有开发工具都是用插件的形式提供的,通过插件组件构建开发环境,这种设计使得Eclipse具有开放式可扩充的结构。Eclipse软件可以集成不同的软件工具开发供应

19、商的产品,任何开发工具厂商都可以将他们的开发工具或组件加入到Eclipse平台,用户可以通过相同的接口使用不同的工具。此外,Eclipse不仅支持团队协同开发,还提供了详细的帮助文档以及对许多外部工具的支持。Android为Eclipse定制了一个插件,即Android Development Tools(ADT),目的是为用户提供一个强大的综合环境用于开发Android应用程序。ADT扩展了Eclipse的功能,可以让用户快速地建立Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具调试应用程序。 6)android内置数据库简介Androi

20、d内置数据库是SQLite,SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至今已经有14个年头,SQLite也迎来了一个版本 SQLite

21、3已经发布。正是由于SQLite的诸多特性,所以他更适用于移动平台2.2相关编程语言Android主要用到的编程语言有两个,一个是xml用于页面设计,一个是java用于功能实现。下面对两种语言做简要介绍2.2.1xml简介xml 即可扩展标记语言。可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。XML能够更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。它提供了一种描述结构数据的格式,

22、简化了网络中数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式,因此它常被称为智能数据文档。为了使得标准通用标记语言显得用户友好,它重新定义了标准通用标记语言的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得标准通用标记语言在设计网站时显得复杂化。它保留了标准通用标记语言的结构化功能,这样就使得网站设计者可以定义自己的文档类型,它同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程

23、序可以更容易的与Windows, Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。2.2.2java简介Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C+语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同

24、时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 java主要特性:Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java

25、更具健壮性。Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。Java语言是原生支持多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现

26、了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。3需求设计在系统需求分析阶段,搞清楚软件“做什么”的问题,形成目标系统的逻辑模型。然后所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型。即从做什么到怎么做的过程。本章主要阐述了手机记事本的需求分析、功能模块的设计、系统流程和界面设计,并对系统实现过程中所用到的关键方法进行了介绍。31系统需求分析3.1.1功能分析android手机记事本的使用人群定位为在校大学生,对于在校大学生而言最主

27、要的还是上课。并且与其他事务相比较而言,上课也是大学生的重中之重,所以记事本的的主要功能是以图形、文字的形式为用户提供以课程为中心的服务,并提供友好、方便、快捷的操作界面。其功能需求主要包括:事件录入:用户可以通过点击按钮方便快捷地录入信息。事件查看:事件是以最直观最主要的信息显示给用户的,如果需要查看详细的信息内容用户可以点击每个事件,进行详细信息的查看。事件修改:对于已经录入的信息进行修改。设置信息提醒:每条信息可以单独地设置提醒方式。3.1.2性能分析记事本的最重要功能就是对各种事务的记录,在性能上也就必须保证应用程序在任何时刻都能够精确处理数据如保持数据的原子性、持久性和一致性等。又由

28、本应用程序是为android平台开发的,且android手机的硬件特性,和性能良莠不齐。所以应用程序又要有更好的硬件兼容性,例如在3.5英寸屏幕上和在5.0英寸屏幕上要有一致的效果。4系统设计4.1系统设计目标结合需求分析和android平台特点,系统设计的目标也就不难得出了我们需要采用java和xml语言实现一个运行于android平台的记事本程序。因为android平台之下有着数不胜数的各种机型,所以首先在性能上,我们的程序要能在多种屏幕大小的不同款式的手机上正常运行,且运行效果一致。另外还需要保证系统在数据处理方面的各种能力和性能,即保证数据的原子性、持久性和一致性。在功能上,数据库满足

29、功能分析中的增、删、改、查四条即可。4.2系统功能模块设计本系统旨在建立Android手机的记事本服务,主要有如下几个核心功能各个模块的主要功能描述如下:常用课程模块主要是周一至周五每天的课程的录入,课程的方式是以河北农业大学的课程安排方式进行的,每天上午,下午,晚上各两节大课,没接大课分为两节小课,课程录入模块是以图表的形式呈现给用户的,用户可以通过点击每个时间段对应的按钮来添加课程,这种最简单直观的形式容易让用户使用。 不常用课程模块对于不常用课程来说就是周六日的课程,在课程安排当中,这一部分是不经常用到的,又由于手持设备屏幕大小的限制,所以把这一模块拿出来单独设计。这一部分的课程是以列表

30、的形式出现的,由于其用处最少,所以并不需要对复杂的时间进行可视化。计划模块同样地计划模块也是以列表形式出现的。计划模块并不针对某一天或者某几天,设置计划模块的意义在于,对于课程之外的事务进行安排,这样的安排是比较合理的,也符合我把学习和其他事务分开的设计初衷。因为学生主要的任务是学习,随然计划也是重点之一,但是最主要的内容还是课程模块当中的。数据库模块数据库模块是所有业务逻辑的核心,数据库是所有事务存储的场所。这一部分主要是所有的数据库业务,包括数据库的读写,查询,修改等雨雾逻辑。数据库模块作为整个核心,是所有业务逻辑的重中之重。43用户界面设计在Android平台下开发应用软件,最重要的是布

31、局问题。本系统设计了多个主要界面来实现与用户的交互。并且界面的设计尽可能的符合手持设备的单手操作原则。页面的流程图如图4-1所示帮助页面事务详情周末课程起始页面课程页面计划界面图4-1页面流程图起始界面主界面是用户首先看到的界面,此界面主要有一句英语文本,还有就是两个按钮,这两个按钮上的文字,已经能够提示用户其功能,十分简单易用。日程信息主界面整个日程信息界面又无缝地分成三个独立的页面,可以通过手指的滑动来改变需要显示的页面。这个界面主要是实现了手指滑动左右翻页的功能,这样做能最大的符合人们日常操作手机的习惯,也是解决手持设备单手操作的最好方式之一。子页面并没有单独存在,而是动态地嵌入在主页面

32、之中,第二个和第三个主页面类似于清单条目,由于这种信息可能会存储很多,所以我们给他加上了滚动条,通过单指的上下滑动来实现翻页功能,在这里这样做也是尽最大努力获得做好的用户体验,事务详情界面这个界面是日程的详细信息,详细信息包括多个条目。这里在显示上我遇到一个矛盾的地方:一个是我们的阅读习惯是从上往下,所以重要的信息应该在上面,但是为了便于查看和修改这几个主要信息条目,我们应该把它安排在最下面,这里出于阅读体验的考虑,牺牲了操作体验。4.4数据库设计数据库设计是项目开发中非常重要的一个关键环节,如果设计不好,在后来的系统变更和功能扩充时,将会遇到非常大的困难。用户的需求具体体现在各种信息的记录、

33、删除、更新和查询。这就要求数据库能够满足各种信息的输入和输出。表4-1表功能说明根据需求分析,需要将用户录入的日程及课程信息存储到到数据库中,便于用户以后查看。相应数据表主要有两个如表4-1。两个不同功能的表分别存储了不同的表内容,具体内容分别展示表4-2Tb_schedule表内容表4-3Tb_plan表内容5 系统的实现结合系统设计最后对整个系统进行实现,这一阶段的目的就是通过代码实现系统设计中的所有的设计。51主要界面实现Android平台中,Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceive

34、r广播接收器。要实现程序的可视,Activity是必不可少的,实现Activity首先要对其有一定的了解。Activity生命周期如图所示。 图5-1Activity生命周期主要的页面实现是模仿腾讯qq的滑窗实现的,这种滑窗的实现方式是使用的FragmentActivity和ViewPager两个结合来实现的,使用ViewPager首先需要引入android-support-v4.jar这个jar包。这种实现方式类似于往圆柱体上贴照片,然后通过转动圆柱体来实现页面的改变。这里ViewPager码上我们要先实现圆柱体,再实现Fragment,最后再把Fragment贴到ViewPager上。主要

35、的代码实现如下 private void InitViewPager() mPager = (ViewPager) findViewById(R.id.vPager); fragmentsList = new ArrayList(); Fragment1 fmpro = new Fragment1(); Fragment2 fmweekend = new Fragment2(); Fragment3 fmplan = new Fragment3(); fragmentsList.add(fmpro); fragmentsList.add(fmweekend); fragmentsList.ad

36、d(fmplan); mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentsList); mPager.setCurrentItem(0); mPager.setOnPageChangeListener(new MyOnPageChangeListener(); 这段代码就实现了所谓的往圆柱体上贴照片的过程。另外最后几行还为ViewPager添加上了监听器,实现滑动时页面的改变,只有添加上了OnPageChangeListener监听器菜能实现页面的滑动效果,这里代码就不再贴了,其他

37、的页面实现效果简单,都是先通过编写xml文件实现页面,setContentView()方法实现最终的页面效果。实现效果图如图5-2,看图可以知道,我把具体的事务进行了一个简单的分类和规划,分为了日程、周末和计划。在日程其实就是一个课程表,具体分成了五天,并且每天都分成了几个部分,这几个部分的划分是根据我们农大的排课方式划分来的。也就是周一至周五每天上午、下午和晚上各有两个大客,每节大课又有两节小课组成。因为在周末我们也存在少数的排课情况,所以为周末也安排了相应的课程计划,这部分课很少,如果以图表的形式出现的话,会显得十分的空洞,并不能方便我们的查阅,所以这里专门弄了一个listview,当有课

38、程的时候我们就进行添加,当没有内容的时候,listview为空。最后一个是计划列表,同样也是通过listview实现的。最后在易用性上,通过FragmentActivity和ViewPager 实现了页面的滑动切换,也达到了方便人们单手操作的目的。图5-2程序主界面实现:查看课程详细信息:在显示效果中,每个课程条目的内容只是显示的相关课程的名称,并且每个课程的条目都是一个按钮。点击每个课程条目,可以查看每个课程的详细信息,其中详细信息包括课程名称,上课地点,时间,提醒时间,是否启动提醒,震动提醒,铃声提醒,其中上课名称是需要用户自行输入的,上课地点也是用户自行输入的,在时间一栏中,时间是自动填

39、充的,因为上课的地点和课程名称可能会不同,但是上课的时间是相对固定的,所以在这里上课的时间由系统自动给出。方便用户对于课程的录入。在这一部分中,按钮式很多的,要为每个按钮都注册上监听器,以方便在按钮点击的时候实现每项功能。要实现按钮的点击功能首先要找到相关的按钮然后为该按钮注册上点击事件监听器。 /*通过findViewById方法和按钮的ID找到按钮*/monday = (Button)view.findViewById(R.id.monday); /*通过setOnClickListener方法注册上监听器*/ mon_first.setOnClickListener(new MyButt

40、onListener();这里的MyButtonListener实现了OnClickListener这个接口,在接口实现了对所有点击事件的处理。图5-3周末课程界面实现:52数据库功能的实现数据库的实现是这个应用程序的重点,前面已经给出了具体的数据库表内容,但是光有表的内容是远远不够的,还要根据表内容对表进行创建,并创建累实现各种功能。Android数据库的实现流程。创建数据库:Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要

41、继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:构造函数,调用父类 SQLiteOpenHelper 的构造函数onCreate()方法;/ TODO 创建数据库后,对数据库的操作onUpgrage()方法。/ TODO 更改数据库版本的操作当你完成了对数据库的操作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。创建表:通过execSQL方法

42、来执行一条SQL语句。具体的的形式如下String CREATE_TABLE=create table 表名(列名,列名,);mSQLiteDatabase.execSQL(CREATE_TABLE);截取程序中的源代码如下:String sql2 = CREATE TABLE + TABLE_NAME_PLAN + ( + ID + INTEGER PRIMARY KEY AUTOINCREMENT, + PNO+ INTEGER, + CONTENT + String, + REMIND_TIME + String, + IS_REMIND + boolean, + IS_REMIND_B

43、Y_VIBRATO + boolean, + IS_REMIND_BY_RING + boolean+);db.execSQL(sql2);增加增删改查的具体实现:我们实现数据库最终的目的就是存储数据,其中我们需要实现的功能无非就是增删改查。根据需求分析,抽取出我们需要的具体操作,最后一代码形式实现。需要功能如下:查询所有课程查询所有单、双周的课程增加课程根据ID更新课程根据ID删除课程查询所有星期1-5的课程根据ID查询星期1-5的课程查询所有周末的课程根据week和whichLesson来查询周末的课程添加计划查询所有计划根据计划编号来查询计划根据计划编号来删除计划根据pno更新计划根据需

44、求分析我们用到的功能很多,但是总结一下无非就是增删改查,实现方式如下插入记录:/ 添加计划public void insertPlan(Plan m) SQLiteDatabase db = mOpenHelper.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put(PNO, m.getPno(); cv.put(CONTENT, m.getContent(); cv.put(REMIND_TIME, m.getRemindTime(); cv.put(IS_REMIND, m.isRemind(); cv

45、.put(IS_REMIND_BY_VIBRATO, m.isRemindByVibrato(); cv.put(IS_REMIND_BY_RING, m.isRemindByRing(); db.insert(TABLE_NAME_PLAN, null, cv); db.close();更新记录(修改记录):/ 根据pno更新计划public void updatePlanByPno(int pno, Plan m) SQLiteDatabase db = mOpenHelper.getWritableDatabase(); ContentValues cv = new ContentVal

46、ues(); cv.put(REMIND_TIME, m.getRemindTime(); cv.put(IS_REMIND, m.isRemind(); cv.put(IS_REMIND_BY_VIBRATO, m.isRemindByVibrato(); cv.put(IS_REMIND_BY_RING, m.isRemindByRing(); String str = pno= + pno; db.update(TABLE_NAME_PLAN, cv, str, null); db.close();删除记录:/ 根据计划编号来删除计划public void deletePlan(int pno) try SQLiteDatabase db = mOp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁