1、Android课程设计报告河南城建学院课程设计报告书专 业:计算机科学与技术 课程设计名称:Java高级应用题 目:基于Android平台的记事本软件班 级:0814131班学 号:* 设 计 者:付明玉同 组 人 员: 李志军、翟帅星指 导 老 师:张妍琰 景伟娜 陈红军完 成 时 间:2016年06月04一、设计目的1.1设计目的Java高级应用课程设计是我们实践性学习环节之一,通过课程设计:(1)、巩固本学期所学的理论知识,熟悉androidstutio工具及相关java组件的灵活应用。(2)、编制出完整的应用程序,锻炼我们的分析解决实际问题的能力,为以后完成大型项目的开发打下基础。(3
2、)、把理论与实验课所学内容做一个综合,并在此基础上强化我们的实践意识、提高实际动手能力和创新能力。1.2设计要求设计一款基于Android平台的记事本软件。功能要求:具有记事本的基本功能,可以实现记录,批量处理。具备在线备份和分享功能。在线备份能备份各种编辑中或者编辑完成的文章。二、需求分析2.1需求分析(1)用户进入系统后可以设置个人信息:设置页面颜色、姓名、电话、及锁定密码,设置标记;(2)查看记录:查看以前的记录;(3)添加记录:添加新的记录;(4)删除记录:删除已有的记录;(5)垃圾箱:删除的信息会被放到垃圾箱里,并可以进行还原操作,若确定是没有信息,则可以清空垃圾箱,实现批量删除;(
3、6)日历:可以显示当前日期,与手机时间,会根据信息修改的时间,自动改变信息记录时间;而且可以再日历中的某一天添加标记信息;(7)排序:可以对信息进行排序(按时间、字母表、颜色)(8)视图:在代码中添加了listView和gridView两种显示视图,用户可以自由选择;(9)简介:对软件和开发的简单介绍2.2软件逻辑2.2.1软件逻辑图图2-12.2.2功能模块图软件功能模块图如图2-2所示图2-2-1图2-2-2图2-2-3图2-2-42.3 数据存储实现依据系统功能设计的要求及功能模块的划分,对数据库进行了设计。本系统主要涉及到记事本信息的存储表notes,如表2-1所示。数据库中表note
4、s信息列名对应变量数据类型属性功能说明_idCOLUMN_IDString主键titleCOLUMN_TITLETextNot null信息标题colorCOLUMN_COLORintegerNot null主题颜色modified_timeCOLUMN_MODIFIED_TIMEintegerNot null修改时间reminder_jsonCOLUMN_REMINDERText设置提醒lockedCOLUMN_LOCKEDIntegerDefault 0锁定状态checkedCOLUMN_CHECKEDIntegerDefault 0设置标记trashedCOLUMN_TRASHEDint
5、egerDefault 0垃圾箱deleted_timeCOLUMN_DELETED_TIMEintegerDefault 0calendar_dayCOLUMN_CALENDAR_DAYintegerDefault -1日历日期(日)calendar_monthCOLUMN_CALENDAR_MONTHintegerDefault -1日历日期(月)calendar_yearCOLUMN_CALENDAR_YEARintegerDefault -1日历日期(年)三、模块分析及设计3.1首页面进入页面的效果如图3-1所示图3-1-1 在系统主页面,我们采用了简单明了的方式直观向用户展示了这个软
6、件的用途,直接点击就可以记录事件,在这个页面我们添加了: setupActionBar();setupNavigationDrawer();由actionbar实现左滑动菜单;此外,在Activity 中使用了Fragment,可以使设计适用于不同的手机屏幕大小,提供更加灵活的UI支持。通过对Activity布局进行分片,更加方便的对每块进行独立控制。3.2主菜单首页面左滑动菜单即为系统主菜单,采用了drawerlayout布局,里面包含了线性布局、相对布局,和FrameLayout布局,用listViw在菜单中显示各个功能的小图标,图标包含TextView和CircularImageView
7、,显示效果如图所示:图3-2-1添加代码激活actionBar按钮,使它能够滑动,使用了方法setupActionBar(),并且在菜单中的每项都增加了点击滑动页面,点击后可以进行相应操作。3.3 查看模块该页面可以查看之前添加过的记录,删除,显示方式(listviw,gridviw),设置提醒时间(remindr),进行标记(check),锁定(locked),设置信息的排序方式(按时间顺序,按颜色,按字母表)当长按某条信息时就会出现这个上下文菜单,来对记录进行一些设置,具体显示效果如图所示:图3-3-1 在这一模块定义了方法OnLongClickNoteListener 来实现长按出现上下
8、文菜单功能,在布局中设置了上下文菜单中每项的含义,在类文件中进行定义Option 方法实现它的菜单项功能。在主页面点击Android图标时会出现对话框,来设置记录的显示方式,效果如图3-3-2所示: 图3-3-2下面是ListView类型的显示方式如图3-3-3所示: 图3-3-3 图3-3-4也可以在设置页面对记录显示方式设置一个默认的显示方式,如果不特别调整,则按默认方式显示。 GridView类型的显示方式如图3-3-4所示: 3.4添加记录用一个EditText输入框编辑事件标题,记录时间由系统提供,用按钮SquareButton实现颜色设置,用NoteEditor编辑框记录内容,效果
9、显示如图3-4-1所示: 图3-4-1代码实现:我们用了一个颜色块按钮来进行颜色的设置,在类文件中,给这个按钮增加了监听事件buttonPickColor.setOnClickListener实现点击更换颜色,引用layoutBorder.setBackgroundColor来获得所点击的颜色,用noteEditor.setLineColor(Color.BLACK); noteEditor.setBackgroundColor(color);将选择的颜色设置为编辑页面的背景色。在重写onClick方法时使用了FragmentManager方法来对Activity进行管理。3.5 垃圾箱垃圾箱
10、的功能可以让用户查看以前删除的记录,并提供还原操作,还原之后可以在记录里面看到此条记录,如果确定这些记录已经没有用,可以进行批量删除,效果如图3-5-1所示:图3-5-1该功能定义了方法TrashFragment,在记录页面删除时将inflater.inflate(R.layout.trash, container, false);中的true变为false,即将记录显示移到垃圾箱页面即可。(原理:删除记录时在垃圾箱类中获取该消息并在垃圾箱页面显示,而主页面不显示被删除的记录)在垃圾箱查找记录时用到了方法boolean onQueryTextSubmit()。3.6 设置页面该页面可以设置一些
11、个人信息,如:默认颜色,默认排序方式,默认显示视图,密码,姓名,用户头像等。效果显示如图3-6-1所示:图3-6-1在这个页面用到了ScrollView、LinearLayout、RelativeLayout等布局,用TextView显示各个文本框,用Spinner设置下拉列表来进行排序选择,用SquareButton按钮来显示颜色框,以及CircularImageView、ImageView等图片控件。3.7 日历页面该页面显示现在的日期,并且可以调整日期,用到了ViewFlipperGridView等控件,效果显示如图3-7-1所示图3-7-1四、制作过程及要点Setting页面的实现及制
12、作1、首先在主页面左滑动菜单中增加设置这一项,增加监听事件,点击之后滑动到设置页面,在布局页面总体用了scrollView布局方式,里面嵌套了LinearLayout和RelativeLayout子布局,用到的主要控件有SquareButton、TextView、view、spinner、ImageView、CircularImageview。2、通过在java类中定义和设置监听事件setOnItemSelectedListener、setOnClickListener来进行点击设置相应属性,其中里面上传图片的功能需要用到本地图片,如果在手机上运行还可以进行拍照来上传头像。在设置密码时需要调用
13、到设置密码页面,NewPasswordActivity或ChangePasswordActivity文件来进行设置密码或修改密码,其次在这个页面所有的设置将作为默认设置保存在AppPreferences中,即如果用户不另外进行设置,将采用默认设置。3、要点:因为要用到数据所以要设置适配器SettingItemAdapter(Context context, List items) 来获取数据;ViewHolder可以为listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能。在设置颜色的时候,需要用到很多颜色。所以需要一个values/color资源文件。五、设计总结心
14、得体会此次课程设计,我们组设计了一个记事本的软件,用到了Android和Java以及之前学到相关知识点,因为我们没有学过Java课程,所以在设计的时候我们需要自行补习相关Java的知识,虽然现在对它了解不很深入,但是通过课设我们也学到了许多东西。对于课程设计来说,虽然需要实践但是最基本也最重要的还是书上的基础知识;此外,要设计这样一个软件,也需要很强的逻辑分析,需求分析,功能实现的构思,进行模块的划分也是很重要的;最后就是在我们原有掌握的基础上,进行网上查询,书籍查阅,来对设计进行扩充。感谢这次课程设计,让我学到了很多,也感谢指导老师的辛勤付出。经过2个星期的课程设计,我觉得最重要的还是活学活
15、用,能将所学知识应用于实践,并学习如何开发完成一个完整的项目。在此课程设计期间,我所学到的知识更加巩固,尤其是Adapter、ListView、Intent、Bunder,对一些视图及其监听方法的实现进行了深入的了解,对一些控件的属性有了更多的了解,熟悉了database Helper数据库的应用,尤其是对数据库表的创建,表中信息进行增、删、改、查的操作应用。此次课程设计,不仅使我巩固和实践了android课程知识,同时使我体会到了团队合作的重要性,和队友一起进行课程设计的过程中,我们一起协商,探讨,虽然经历了很多困难,如功能无法实现,运行出错误,文件丢失等,但最后我们解决的时候,却是有很多收
16、获的。因此,此次课程设计对我的帮助不仅是在专业课程上更是影响以后的工作生活。我相信以后我会更懂得团队合作和克服困难,解决问题。最后,虽然课程设计结束了,但我们的学习还没结束,在这一部分还有很多东西等着我们去研究,探讨。希望在明年可以学的更多的知识。六、参考资料1李刚.Android疯狂讲义(第二版):清华大学出版社,20122李兴华.名师讲坛Android开发实战经典.北京:清华大学出版社,2012.3韩超.Android经典应用程序开发J.人力资源出版社,2011:5-184林城.Android2.3应用开发实战J.机械工业出版社,2011:17-3215 Android2高级编程(第2版)梅儿(Reto Meier)、王超 清华大学出版社6姚尚朗. Android 开发入门实战;人民邮电出版社,2009
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1