欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    Android日历提醒软件计算机毕业设计论文.doc

    • 资源ID:2393606       资源大小:1,001.50KB        全文页数:59页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Android日历提醒软件计算机毕业设计论文.doc

    基于android的日历提醒软件的设计与实现摘要 本软件是一种基于安卓平台开发的一款日历提醒软件。本文主要通过现阶段流行开来的智能手机的软件的设计方法,来设计出一款能够提醒一些事件的应用软件,其真实的目的是通过利用这次的开发过程来学习到安卓开发的一些方法和经验,从而深入地了解安卓开发。本文介绍了移动应用的开发背景,首先需要学习安卓的开发环境的搭建和使用,其次对日历提醒软件做出需求分析,并且通过概要设计来确定其主要功能,然后对其中的功能进行详细设计并书写代码,最后进行功能方面的一些测试来完成设计。通过上面的设计过程,最终实现了软件的两个功能:日程管理功能和课程管理功能。日程管理主要是针对某一天的一些事件进行记录和提醒,而课程管理主要针对大学生人群制定,可以记录一些课程的上课时间从而给忙碌的学习生活带来一定的便利。关键词:日历提醒;安卓开发;智能手机。 Design And Implementation Of Calendar Reminder Software Built On Android PlatformAbstract This software application is a calendar reminder built on Android platform. This paper is to design an application that can remind some events based on designing methods of the current popular smartphone software. The real purpose is to learn some methods and obtain experience of Android development through the use of the development process; therefore we can get a better understanding of Android development. This paper introduces the background of mobile application development. First of all, we need to learn how to build and use the android development environment. Second, were supposed to work on the requirements analysis for our application. Then were able to determine the main functions. After this, we can start designing and coding for the detailed functions. Finally, it is necessary to write test cases to verify all functionality of this application.Through the above design process, this application implements two functions. They are schedule management function and course management function. Schedule management focuses on recording and reminding of some events on one day, and course management is designed for university students to record the time of courses, which can make the busy learning life more convenient.  Keywords:Calendar reminder;Google Android SDK;SmartPhone.目录摘要iAbstractii 1 绪论11.1 课题背景及设计意义11.2 国内外移动应用开发的背景11.3 本论文的主要内容22 Android及开发环境介绍32.1 android系统自身的特点32.2 android系统自身的功能特征32.3 android的构成及其工作机制42.4如何搭建开发环境52.4.1 JDK的安装52.4.2 Eclipse的安装62.4.3 Android SDK的安装62.4.4 ADT的安装73 日历提醒软件的需求分析83.1系统的需求分析83.1.1需求分析的过程83.1.2需求分析的方法83.2日历提醒软件系统的需求分析94 日历提醒软件的概要设计104.1日历提醒软件的初步需求104.2日历提醒软件的概要设计104.2.1 日历提醒软件的功能模块说明104.2.2 日历提醒软件的功能结构图105 日历提醒软件的详细设计135.1本软件日历界面的设计和实现135.2 本软件任务界面的设计155.2.1 任务界面的数据库准备155.2.2日程添加界面175.2.3 总日程的界面195.2.4 对现有日程及日期的标记225.2.5课程管理的界面236 日历提醒软件的系统测试296.1 日程管理方面的测试296.2 课程管理方面的测试31结论34参考文献35致谢36外文原文及翻译37 1 绪论近年来,除了互联网的迅猛发展,另一个急速发展起来的前沿技术就不得不说智能手机以及其应用软件的高速发展。智能手机以个人计算机以及运营商的服务器为处理终端,并利用一些前沿技术如人工智能、人机接口技术、传感技术、多媒体技术、计算机图形学等高度并行的实时计算技术来实现人机的交互。其中以个人版的智能手机的应用软件等一系列的手机应用软件发展尤为迅速。当今无论是工作人群还是在校学生,所面临的压力都是十分巨大的,而一些繁杂的事务记忆也使我们身心疲劳,日历提醒软件可以让我们在百忙的生活学习中从一些繁杂的事务记忆中解脱出来,它可以准确地提醒我们一些关键事务的处理时间段,而这样一款可以随时随地在手机上应用的提醒软件,其魅力是不可估量的。1.1 课题背景及设计意义智能手机应用软件是近年来十分活跃的技术领域,目前市场上安卓智能手机的实用人群还是十分多的,手机几乎成为了我们日常工作以及其他生活娱乐的必需品,所以在安卓平台上开发的手机应用软件有着十分广阔的市场,既然安卓的应用软件面向的是广大的普通用户,而不是对软件开发以及计算机的一系列了解十分透彻的专家,所以设计出来的软件一定要简单而且易使用,所以在手机软件设计时,一定要注意软件使用的简单性以及通俗性。手机的多任务处理是一个十分重要的环节,在一些日常的短信以及通话等行为中,手机的一些软件应该支持后台的运行以及一些优先级的处理,这就需要日历提醒软件能够在工作时考虑到手机当前程序的一个运行状况,这样才能更好地处理一些应用软件在使用时的一些优先级问题,保证其进程能够在后台完美地运行,从而达到应用程序之间的良好切换。最后就是十分简洁的操作界面以及简单的操作方式,还有十分美观的界面背景,以及一些人性化的提示和个性设计也是十分重要的,所以在设计的过程中一定要注意一些细节方面的东西,这样日历提醒软件的设计才能更加完美和实用。1.2 国内外移动应用开发的背景目前智能手机的迅速发展以android以及苹果的IOS为主要领头,谷歌在2012年的开发者大会上发布了android 4.1操作系统,到目前为止已经更新到了4.4.2版本,谷歌的android自2010年来呈现了突飞猛进的发展势头,其用户数量也是呈现高速地增长。对于android本身来言,其开放式的开源性是其最主要的特点,这个特点使得以前由少数软件商垄断系统软件平台的状况得到了极大地改善,让更多的民间开发商加入进来,增加了客户使用的体验,因此也具有十分广阔的发展空间。1.3 本论文的主要内容 本论文主要通过对日历提醒软件做一个详细系统的设计,从开发环境的搭建到最后的系统测试,每个步骤都写出了基本的方法和一些代码,最终实现了哪些功能等都做了详细的介绍,例如:开发环境的搭建以及系统概要设计时的一些思想,还有在详细设计时实现的功能,通过上述内容,最终软件实现了两个主要功能,即日程管理功能和课程管理功能。这两个功能的实现,基本上解决了软件设计时提出的问题,而通过对软件的设计,我们从中也学习到了很多的知识和技能。 2 Android及开发环境介绍2.1 android系统自身的特点Android是基于Linux操作内核的系统,android的语言是基于Java语言的,其中还涉及一些C以及C+语言。如果使用者本身对Java语言十分地熟悉,那使用起来会比较得心应手。android是基于Eclipse平台做开发,并且使用android SDK插件来辅助开发,而且具有丰富的源代码模型,在源码上的处理上也比较良好,这样就使得开发者在开发软件时的难度降低。2.2 android系统自身的功能特征(l)应用程序架构:android在应用程序架构中拥有多种不同的基础组件,在使用起来可以通过调用这些组件,来减少开发所需要的时间和精力。(2) Dalvik虚拟机器:Google使用自主开发的代号为Dalvik的虚拟机,它既保证了在API方面的兼容性,而且使手机运行效率更高,占用的资源更少。(3) 集成的浏览器:android具有内建的集成浏览器,它是以WebKit这个开源浏览引擎为基础开发的浏览器,还有Safari,Midori,Epiphany等目前都在使用。集成浏览器在浏览网页时,可以达到比较出色的效果,提高用户体验。(4) 绘图能力得到优化:一般程序用到的绘图分为2D和3D方面,OpenGLES1.0规范的类库在3D方面被采用,而在2D方面,SGL则被广泛采用。这两种引擎十分地快捷,并且支持硬件加速。(5) 数据库SQLite:这是一种轻型的数据库,它能够提供结构化的数据存储,它支持多种的操作系统,例如Windows、Linux、Unix等,同时也兼容PHP,Java等语言,它本身还是开放式的关联式资料库,虽然它本身并不是很大,但是他支持的SQL语句却不逊色于其他的开源数据库,它小巧轻量的设计,使它更适用于手机。(6) 支持多种多媒体:主要支持多种用于播放的媒体文件,例如MP3等多种音频音乐文件,还支持统一资源识别地址URI-Web上可用的每种资源:-HTML文档、图像、视频片段、程序等。另外还支持JPG、PNG、GIF等多种图像格式。(7) GSM技术:GSM是Global System For Mobile Communications的缩写,就是全球移动通信系统,它是由欧洲电信标准组织ETSI制订的一个数字移动通信标准,也是第二代移动通信技术,他提供了一个在全球各地都可以使用的移动电话网络标准,让用户一部手机可以畅通全球。GSM技术是在手机硬件方面的展现,也是开发Android程序时的主要特点之一。(8) 蓝牙、EDGE、3G、Wi-Fi、GPS以及4G网络:这些高端前沿的技术以及科技都是手机硬件方面的体现,也是未来在开发Android应用程序时所应该突出的特点之一。2.3 android的构成及其工作机制 Android在开发时都是通过框架与底层进行交互,对于一个Android应用程序来说,主要是由Activity、IntentReceiver、Service、Content Provider四部分组成,但也不是每个应用程序都有这四个部分,当使用程序时,需要在AndroidManifest.xml这个文件中进行一些配置,而这个配置文件则是每个Android应用程序所必须的,它可以对程序的组件进行定义。Android应用的构成和工作流程如图2-1所示: 图2-1 Android应用的构成和工作流程在Android中还包含着一些C和C+的类库,Android中的不同组件可以来使用这些类库,开发时也可以通过应用程序框架来使用这些功能。一些核心类库列表:(1) surface Manager:它的主要功能是存取、显示系统及管理。它可以通过在显示与存取操作间的互动等一系列的动作来实现2D与3D多应用程序之间的无接缝整合。(2)3Dlibraries:它主要是按照openGLES1.0的规范定义的3D绘图引擎,它可以将3D功能的处理显示做到最佳化。(3)SGL:主要是处理有关显示2D方面的绘图引擎。(4)Media Frame work:以packetVideo公司的OpenCORE为基础所拓展的支持大量当下流行的音频格式(MPEG4、MP3等)和静态图片(JPG、PNG、GIF等)的多媒体类库。(5)Free Type:主要是用来显示点阵图和处理向量字形的。(6)SSL:secureSocketsuyer,就是“安全套接层”,是为网络通信提供安全及数据完整性的一种安全协议。SSL协议是位于TCP/IP协议与各种应用层的协议之间的,被广泛地用于Web浏览器与服务器之间的身份认证和加密数据的传输。(7)SQLite:这是一种轻型的数据库,它能够提供结构化的数据存储,能够做为所有应用程序使用的轻量级关系数据库的引擎。(8)web Kit:它是一个开源的浏览器引擎,可以构建Android浏览器和内嵌的web视图,同时具有高效稳定,兼容性好,且源码结构清晰,易于维护等特点。(9)lib c:它是针对Linux嵌入式装置进行最佳化调整的一个BSD标准C类库。Android本身虽然是用Java语言来进行开发的,但它并不是使用Java的组件来运行的,它是由谷歌自行研发的核心类库以及Dalvik虚拟机等组件来运行程序。2.4如何搭建开发环境2.4.1 JDK的安装开发Android应用程序的时候,仅有Java运行环境是不足以开发Android应用程序的,需要完整的JDK,且需要1.5或者1.6以上的版本。首先我们需要安装JDK,可以从 6并且安装。(Android移动应用设计与开发中开发环境的配置非常详细)。下一步,我们要设置JAVA_HOME环境变量来指向JDK的安装目录。右击“计算机”“属性”“高级系统设置”“环境变量”。然后点击“新建”添加JAVA_HOME变量。如图2-2所示:图2-2 JAVA_HOME环境变量的配置 接下来配置环境变量CLASSPATH,步骤和上一步类似,变量名为CLASSPATH,变量值指向JDK目录下的LIB文件夹,同样,最后还需要编辑环境变量Path,变量值指向JDK安装目录下的BIN文件夹。这样环境变量基本上配置完成。2.4.2 Eclipse的安装在Android移动应用设计与开发中提到:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,他只是一个框架和一组服务,用于通过插件组件构建开发环境。从这段话中可以了解到,仅仅只有Eclipse平台是不够的,我们还需要多种的插件来配合开发。Eclipse有多种版本,可以从网上下载到,一般电脑是WIN7的32位系统,安装完成后,我们首次启动Eclipse时,我们需要给他定一个工作区间,例如F:/Eclipse。接下来就是其他组件的安装了。2.4.3 Android SDK的安装Android SDK是开发安卓应用程序时的一个必须安装的组件。Android SDK可以从 下载。下载上SDK后,接下来需要将它解压,其中的一个tools目录,最后需要将它添加到PATH中。安装界面如图2-3:图2-3 Android SDK的安装界面2.4.4 ADT的安装 Eclipse中ADT这个插件对于开发Android应用程序来说具有巨大的帮助,它本身带有一些工具可以对Android应用程序进行创建、测试及调试。它需要 Eclipse中的Install New Software工具来执行安装。在安装ADT的最后一步是将它指向Android SDK。点击菜单选择Preferences,然后选择Android节点将SDK Location字段替换为Android SDK的路径,最后点击下Apply按钮即可完成操作。最终运行效果如图2-4:图2-4 开发环境配置完成效果图3 日历提醒软件的需求分析3.1系统的需求分析3.1.1需求分析的过程需求分析的任务不是确定软件本身要怎么样完成它的工作,而是确定软件本身需要完成哪些工作,一般可以总结为四个步骤: (1)需求获取:调查研究。对于不同软件的开发方法,在进行需求时会有所不同,但是一般都必须做到充分的调查研究,对目标系统的运行环境、功能等要与用户取得一致的意见。 (2)需求提炼:分析建模。这个阶段的主要任务是建立分析模型,把来自用户的问题加以分析,并抽象建立起目标的分析模型。例如数据流图、实体联系图、控制流图、状态转换图、用例图等。 (3)需求描述:编写SRS。为了使需求描述具有统一的风格,可以采用已有的模板,例如国际标准IEEE标准830-1998或者中国国家推荐标准GB9385中描述的模板,也可以根据自己项目软件的特点形成自己的SRS模板。(4)需求验证。由分析员和用户一起对需求分析的结果进行严格的审查和验证,确保需求说明可作为软件设计和最终系统验收的依据。3.1.2需求分析的方法需求分析的方法具有许多种,简单地介绍几种方法:(1) 功能分解方法:功能分解方法可以说是最早的分析方法,这个方法是将一个系统看成是由若干功能组成的一个整体,每个功能又可以分成若干个子功能,这个方法体现了“自顶向下,逐步求精”的思想,最后分析的结果一般已经是系统程序结构的一个雏形,实际上它已经很难与软件设计明确分离,难以适应用户的需求变化。(2) 结构化分析方法:结构化分析方法是一种从问题空间到某种表示的映射方法,由数据流图来表现软件的功能,这种方法比较简单、实用,适用于处理数据领域的问题,也符合传统软件工程思想。(3) 信息建模方法:信息建模方法局势从数据的角度来对现实世界建立模型,也就是现实系统的一个抽象,所以他必须能够反映实际,而且还必须高于实际。它主要依赖的工具就是实体-联系图,即E-R图。E-R图是面向对象分析的基础,但它本身对数据不是封闭的,不支持继承性和消息传递机制。(4) 面向对象的分析:面向对象的分析就是把E-R图中的概念与面向对象程序设计语言中的概念结合在一起的分析方法。在该方法中采用了实体、关系和属性等信息模型分析中的概念,同时采用了封闭、类结构和继承性等面向对象程序设计语言中的概念。3.2日历提醒软件系统的需求分析(1) 功能需求:系统需要具有日历的模块,然后是具有记事本的功能,能够在对应的日期上做一些记录,还有需要具备一个闹钟的功能,能够在合适的时间进行提醒;课程管理方面需要有一个记录每节课程时间的模块其他的功能和日程管理功能类似。(2) 性能需求:软件需要能够识别手机的系统时间,在适当的时间做到提醒,反应的误差最好不超过1分钟,占用手机的内存应当在2%左右。(3) 环境需求:软件需要在安卓手机上能够运行流畅,支持4.0以上的安卓系统,对于现阶段流行的智能手机要做到能在其上运行稳定。 (4) 用户界面需求:具有简洁易懂的操作界面,并且具有比较美观的可视界面,还需要具有一定的快捷操作功能,例如长时间点击或者双击直接对事件进行添加、删除等操作。(5) 其他功能需求:在提示功能方面可以做一些多方面的选择,根据用户的需要选择铃声或者是震动提示。4 日历提醒软件的概要设计4.1日历提醒软件的初步需求本软件是基于Android语言设计的一款手机上的日历提醒软件,它为本软件的使用者提供一些日常事务管理方面的服务,例如重要事件的提醒或者课程的提醒,它包括日历的查看,日历上重要事件的查看等以及一些操作,如事件的增加与删除、日程的修改与删除、以及软件的一些设置还有相关信息的查看等功能。本软件可以帮助人们对自己生活中的一些事务起到提醒的作用,释放忙碌人群对琐碎事务的记忆,方便工作人群或者学生们的生活。4.2日历提醒软件的概要设计4.2.1 日历提醒软件的功能模块说明(1) 日历查看模块:需要拥有一套完整的日历界面,包括年、月、日以及星期几,而且在点击某个确切的日期时,要能够显示出当前是否添加了一些事件的提醒,对已经拥有事件记录的日期要有特殊的标记。(2) 日程管理模块:在日程管理模块中要包含总的日程显示以及单击对应日期时可以查看当前记录的一些活动或者事件,可以添加新的事件,也可以对当前已经具有的事件做到修改或者删除,在记录拥有一些事件的日期后,需要在日历上面加以一定的标识,用来提醒用户事件的日期,或者方便用户对现有事件作出一定的修改或者删除。(3) 课程管理模块:在课程管理模块中需要有星期的标识,在某一天记录课程时,需要对这门课程的时间有一定的显示,还有作业的情况方面的提醒,其他的增添删除操作基本同日程管理模块类似。(4) 设置界面模块:其中包含了一些对界面的设置以及对日程的设置选项。(5) 关于信息模块:其中包含了一些本软件的设计信息及使用的一些基本信息。4.2.2 日历提醒软件的功能结构图 首先在设计时可以根据日历提醒软件中的几个大模块:日历查看模块、日程管理模块、课程管理模块、设置界面模块、关于信息模块来绘制出本软件总体的一个功能模块图,如图4-1所示,总体的结构图反映了本系统各个模块之间的联系和总体情况。日历显示日历模块 总日程显示单一日程显示任务模块类型设置设置模块主界面日历系统关于模块关于信息图4-1 系统总体功能模块图日期显示节假日显示阴历日期显示日历显示然后在总体的功能模块图完成后,就是各个模块的详细功能结构图,在日历模块的界面显示上,可以分为如下几个部分,见图4-2:图4-2 日历显示模块图接下来就是日程模块的结构图,里面应该包含有重要日程的显示,日程的添加和删除等,以及事件的记录,见图4-3:删除日程书写日程时间书写日程内容选择日程类型选择日程显示图4-3 日程界面模块课程界面课程查看课程删除课程增加课程设置 对于一些在校的学生,我们还设置了一个课程管理的模块,方便学生们对自己课程的一些时间、地点等做一些提醒安排,详细见图4-4:图4-4 课程界面功能模块图以上就是本系统的一个初步的设计,其中它可以方便的显示出当前日期以及当前日期内的一些日程安排,或者显示出当前日期内有什么样的课程安排,同时,也可以让用户能够随时对自己的日程进行查看、修改、添加或者删除,而这些人性化的设置,为本系统增色不少。接下来就是整个软件最重要的部分了,也就是详细设计阶段。5 日历提醒软件的详细设计详细设计最主要的目的就是确定如何实现在概要设计中具体的功能和要求,也就是经过这一阶段,需要得出对目标功能的精确描述,详细一点就是为软件结构图中的每一个模块编写相应的代码和算法。详细设计的目的不仅仅是要在逻辑上正确地实现每个模块的功能,最重要的就是在设计处理的过程中应该尽可能的简洁易懂。5.1本软件日历界面的设计和实现(1)第一步:系统需要建立一个布局文件来显示年月日,采用TextView类,对应在日历的CalendarActivity文件中加入函数来添加年月日等信息。接下来需要编写一个作为日历显示的CalendarView类,其中使用重载的方法来定义几个具有不同参数的CalendarView用于不同的情况。 接下来在的工作就是在CalendarActivity这个类中实例化CalendarView并且使用CalendarView其中的一个方法CalendarView(this, getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);然后书写方法来添加头部的年份等信息。接下来通过动态化的方法来实现对页面的头部进行布局,接着建立一个可以对值进行改变的StringBuffer类型的参数textDate,并对其进行append操作,添加到年月日的参数里,对月闰年的判断,是通过一个条件函数calV.getLeapMonth()的值来进行判断的,最后对界面使用setText方法来赋值到界面上,最后一步就是使用动态布局模式对界面进行一些美化操作。 (2)第二步:需要对日历界面中的主体,也就是日期部分的显示要完成。首先在CalendarActivity文件初始化实例对象时加入动态添加布局文件,并将此方法命名为addGridView,然后在这个方法中进行动态化布局,GridView可以将一系列的空间组织成二维网格的形式显示出来,所以这里比较适合对日期的界面进行布局。首先还是动态化布局的建立,这里可以实例化GridView为gridView参数进行,在这里还需要添加GridView控件的列为7,列宽为46,然后加上判断屏幕大小的条件,这就需要加入取得屏幕大小的对应函数,如果是800*480屏幕的话,需要将列宽设置为69,接下来对水平和竖直的间距、取值边框、设置居中等进行一系列的操作。在这个方法里面还需加入个OnTouch方法,用来将gridView中的触摸事件回传给gestureDetector,进行下面的触摸操作,即: Overridepublic boolean onTouch(View v, MotionEvent event) return CalendarActivity.this.gestureDetector.onTouchEvent(event);); 日历的布局创建完成后,需要在里面填上具体的日期。就对当前显示的界面来说,需要建立几个对应的参数来显示和传接数据。比如在函数开始时就String dayNumber = new String49;这是作为对GridView控件内进行标记序列的,可以对接下来的条件语句进行判断,还有就是对界面内的一些控件名进行实例化,然后是对页面属性值进行动态化设置。接着在对日期中的第一行就是周一、周二等的这行,设置出字的颜色以及背景图案,而这行的位置需要通过对参数position(对应编号)进行判断是否在7以内。 接下来就是当前月份的信息显示,这也需要用条件函数来判断是否是当前月(也就是判断参数position是否在范围内),然后对当天的日期进行一个标记,可以设置当天的日期背景为图片current_day_bgc,字体的颜色为白色。通过上面的这些步骤,我们就基本完成了日历界面中的一些初步设置。(3)最后,由于市场上现在用的手机大都是触摸屏幕,也就是说日历菜单需要通过我们的触摸来进行翻页,所以需要在总体布局下建立一个ViewFlipper类(这个类可以实现屏幕的切换),然后然后实例化手势gestureDetector并取得布局中ViewFlipper用于下面的调用。接下来书写手势的方法主要是onFling的方法,这个方法可以实现页面的向左或者向右滑动的操作,而这个操作可以用条件语句来实现:由滑动两点的x坐标的值进行差值计算,如果是起点减去终点大于120时着向左滑动,反之则向右滑动。在滑动操作开始,并且已切换一面后就需要载入新的一张日历页面,这里又会用到参数calV,当向右滑动时则将参数calV所代表的函数CalendarView里的jumpMonth加1,代表下一个月;当向左滑动时则将参数calV所代表的函数CalendarView里的jumpMonth减1,代表上一个月。这样,我们的软件的界面可以说是大体上完成。 在日历界面的显示中,我们除了一些基本的日期显示外,还应该在日期的头部页面上有每年每月的显示,而在LunarCalendar方法里面就包括干支纪年等信息。同样的其他信息,也是通过字节数组来储存的。在闰年判断函数SpecialCalendar中可以对每月天数,或者每月的第一天是星期几进行判断。闰年是通过传回年值并通过函数进行判断,最后传回布尔值;而每月的天数是用switch进行判断并赋值给月份天数的参数;对每月的第一天为星期几则是使用如下代码:public int getWeekdayOfMonth(int year, int month)Calendar cal = Calendar.getInstance();cal.set(year, month-1, 1);dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)-1;return dayOfWeek;日历的界面完成如图5-1所示:图5-1 日历提醒软件的界面5.2 本软件任务界面的设计5.2.1 任务界面的数据库准备本软件的任务界面主要包含主界面的日程显示以及对应日期内的任务显示,还有任务的添加与删除等。首先任务界面所涉及到的就是日程数据的存储,以下先做介绍。(1) 数据库表的建立:主要建立了两个表:schedule表(日程的表)和scheduletagdate(标记日期所需的表)。Android 提供了标准的数据库创建方式。建立DBOpenHelper类继承到SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法。首先对schedule表进行建立,在其中包括日程及日程类型的ID,日程重复类型的ID,日程的正文内容和日程时间这几个参数,在创建时需要填写上参数名、参数类型及主键等。 db.execSQL("CREATE TABLE IF NOT EXISTS schedule(scheduleID integer primary key autoincrement,scheduleTypeID integer,remindID integer,scheduleContent text,scheduleDate text)");接下来是对scheduletagdate表的建立,在这个表中包括了标记的ID、年信息、月信息、日信息、日程ID这几个参数。db.execSQL("CREATE TABLE IF NOT EXISTS scheduletagdate(tagID integer primary key autoincrement,year integer,month integer,day integer,scheduleID integer)"); 建立完表后是继续写入onUpgrade方法,这个方法在数据库升级时会被触发,以便于软件升级时更新表结构。public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) db.execSQL("DROP TABLE IF EXISTS schedule");db.execSQL("DROP TABLE IF EXISTS scheduletagdate");onCreate(db); (2)再分别建立ScheduleVO 和ScheduleDateTag ,里面分别写了表里面各个数据的get(表示获取某个变量值)和set(表示设置某个变量值)方法,以便于调用。 (3)建立ScheduleDAO文件,这个文件是用来写数据库的查找、删除等方法。 首先是需要实例化DBOpenHelper用于数据库数据的get与set。private DBOpenHelper dbOpenHelper = null;public ScheduleDAO(Context context)dbOpenHelper = new DBOpenHelper(context, "schedules.db");下面就是对表中数据的操作了,包括了保存日程信息、查询某一条日程信息、查询所有的信息、删除日程、将日程标记的日期保存到数据库中。(1)保存日程信息:首先需要从日程添加页面里获取日程类型的ID、日程重复类型的ID、日程的正文内容、日程时间这几个参数,接下来使用ContentValues类(这个类是一个键值对,是用来存储名值对,它的名一般是String类型,而值都是基本类型)来NEW一个参数,然后用这个参数的PUT方法将这些参数放入到数据库中。values.put("scheduleTypeID", scheduleVO.getScheduleTypeID();values.put("remindID", scheduleVO.getRemindID(); values.put("scheduleContent", scheduleVO.getScheduleContent(); values.put("scheduleDate", scheduleVO.getScheduleDate(); 最后调用添加方法insert。 db.insert("schedule", null, values);然后需要用到moveToFirst方法来判断是否为空,从而进行一系列相关操作。 (2)查询某一条日程信息:本系统的设计是通过对日程的点击来查看当前日期内的详细信息,也就是根据日程的ID来查看。Android sqlite的查询方法是query方法,查询语句是:db.query("schedule", new String"scheduleID","scheduleTypeID","remindID","scheduleContent","scheduleDate", "scheduleID=?", new StringString.valueOf(

    注意事项

    本文(Android日历提醒软件计算机毕业设计论文.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开