河南城建学院课程设计报告书专业:计算机科学与技术课程设计名称:《Java高级应用》题目:基于Android平台的记事本软件班级:0814131班学号:081413107设计者:付明玉同组人员: 李志军、翟帅星指导老师:张妍琰景伟娜陈红军完成时间:2016年06月04一、设计目的 (2)1.1设计目的 (2)1.2设计要求 (2)二、需求分析 (2)2.1需求分析 (2)2.2软件逻辑 (3)2.2.1软件逻辑图 (3)2.2.2功能模块图 (4)2.3 数据存储实现 (5)三、模块分析及设计 (6)3.1首页面 (6)3.2主菜单 (7)3.3 查看模块 (8)3.4添加记录 (10)3.5 垃圾箱 (10)3.6 设置页面 (11)3.7 日历页面 (12)四、制作过程及要点 (12)五、设计总结 (13)六、参考资料 (15)一、设计目的1.1设计目的《Java高级应用》课程设计是我们实践性学习环节之一,通过课程设计:(1)、巩固本学期所学的理论知识,熟悉androidstutio 工具及相关java组件的灵活应用。
(2)、编制出完整的应用程序,锻炼我们的分析解决实际问题的能力,为以后完成大型项目的开发打下基础。
(3)、把理论与实验课所学内容做一个综合,并在此基础上强化我们的实践意识、提高实际动手能力和创新能力。
1.2设计要求设计一款基于Android平台的记事本软件。
功能要求:具有记事本的基本功能,可以实现记录,批量处理。
具备在线备份和分享功能。
在线备份能备份各种编辑中或者编辑完成的文章。
二、需求分析2.1需求分析(1)用户进入系统后可以设置个人信息:设置页面颜色、姓名、电话、及锁定密码,设置标记;(2)查看记录:查看以前的记录;(3)添加记录:添加新的记录;(4)删除记录:删除已有的记录;(5)垃圾箱:删除的信息会被放到垃圾箱里,并可以进行还原操作,若确定是没有信息,则可以清空垃圾箱,实现批量删除;(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所示。
数据库中表notes 信息列名对应变量数据类型属性 功能说明_id COLUMN_ID String 主键title COLUMN_TITLE TextNot null 信息标题colorCOLUMN_COLORinteger Not null 主题颜色 modified_timeCOLUMN_MODIFIE D_TIMEinteger Not null 修改时间reminder_json COLUMN_REMINDE RText 设置提醒locked COLUMN_LOCKEDInteger Default 0 锁定状态checked COLUMN_CHECKED Integer Default 0 设置标记 trashedCOLUMN_TRASHED integer Default 0 垃圾箱日 历 模 块显示日期标记事件调整日期三、模块分析及设计3.1首页面进入页面的效果如图3-1所示图3-1-1在系统主页面,我们采用了简单明了的方式直观向用户展示了这个软件的用途,直接点击就可以记录事件,在这个页面我们添加了:setupActionBar();setupNavigationDrawer();由actionbar实现左滑动菜单;此外,在Activity 中使用了Fragment,可以使设计适用于不同的手机屏幕大小,提供更加灵活的UI支持。
通过对Activity布局进行分片,更加方便的对每块进行独立控制。
3.2主菜单首页面左滑动菜单即为系统主菜单,采用了drawerlayout布局,里面包含了线性布局、相对布局,和FrameLayout布局,用listViw 在菜单中显示各个功能的小图标,图标包含TextView和CircularImageView,显示效果如图所示:图3-2-1添加代码激活actionBar按钮,使它能够滑动,使用了方法setupActionBar(),并且在菜单中的每项都增加了点击滑动页面,点击后可以进行相应操作。
3.3 查看模块该页面可以查看之前添加过的记录,删除,显示方式(listviw,gridviw),设置提醒时间(remindr),进行标记(check),锁定(locked),设置信息的排序方式(按时间顺序,按颜色,按字母表)当长按某条信息时就会出现这个上下文菜单,来对记录进行一些设置,具体显示效果如图所示:图3-3-1在这一模块定义了方法OnLongClickNoteListener 来实现长按出现上下文菜单功能,在布局中设置了上下文菜单中每项的含义,在类文件中进行定义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编辑框记录内容,效果显示如图3-4-1所示:图3-4-1代码实现:我们用了一个颜色块按钮来进行颜色的设置,在类文件中,给这个按钮增加了监听事件buttonPickColor.setOnClickListener实现点击更换颜色,引用layoutBorder.setBackgroundColor来获得所点击的颜色,用noteEditor.setLineColor(Color.BLACK);noteEditor.setBackgroundColor(color);将选择的颜色设置为编辑页面的背景色。
在重写onClick方法时使用了FragmentManager方法来对Activity 进行管理。
3.5 垃圾箱垃圾箱的功能可以让用户查看以前删除的记录,并提供还原操作,还原之后可以在记录里面看到此条记录,如果确定这些记录已经没有用,可以进行批量删除,效果如图3-5-1所示:图3-5-1该功能定义了方法TrashFragment,在记录页面删除时将inflater.inflate(yout.trash, container, false);中的true 变为false,即将记录显示移到垃圾箱页面即可。
(原理:删除记录时在垃圾箱类中获取该消息并在垃圾箱页面显示,而主页面不显示被删除的记录)在垃圾箱查找记录时用到了方法boolean onQueryTextSubmit()。
3.6 设置页面该页面可以设置一些个人信息,如:默认颜色,默认排序方式,默认显示视图,密码,姓名,用户头像等。
效果显示如图3-6-1所示:图3-6-1在这个页面用到了ScrollView、LinearLayout、RelativeLayout 等布局,用TextView显示各个文本框,用Spinner设置下拉列表来进行排序选择,用SquareButton按钮来显示颜色框,以及CircularImageView、ImageView等图片控件。
3.7 日历页面该页面显示现在的日期,并且可以调整日期,用到了ViewFlipper GridView等控件,效果显示如图3-7-1所示图3-7-1四、制作过程及要点Setting页面的实现及制作1、首先在主页面左滑动菜单中增加设置这一项,增加监听事件,点击之后滑动到设置页面,在布局页面总体用了scrollView布局方式,里面嵌套了LinearLayout和RelativeLayout子布局,用到的主要控件有SquareButton、TextView、view、spinner、ImageView、CircularImageview。
2、通过在java类中定义和设置监听事件setOnItemSelectedListener、setOnClickListener来进行点击设置相应属性,其中里面上传图片的功能需要用到本地图片,如果在手机上运行还可以进行拍照来上传头像。
在设置密码时需要调用到设置密码页面,NewPasswordActivity或ChangePasswordActivity文件来进行设置密码或修改密码,其次在这个页面所有的设置将作为默认设置保存在AppPreferences中,即如果用户不另外进行设置,将采用默认设置。
3、要点:因为要用到数据所以要设置适配器SettingItemAdapter(Context context, List<String> items) 来获取数据;ViewHolder可以为listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能。
在设置颜色的时候,需要用到很多颜色。
所以需要一个values/color资源文件。
五、设计总结心得体会此次课程设计,我们组设计了一个记事本的软件,用到了Android和Java以及之前学到相关知识点,因为我们没有学过Java课程,所以在设计的时候我们需要自行补习相关Java的知识,虽然现在对它了解不很深入,但是通过课设我们也学到了许多东西。
对于课程设计来说,虽然需要实践但是最基本也最重要的还是书上的基础知识;此外,要设计这样一个软件,也需要很强的逻辑分析,需求分析,功能实现的构思,进行模块的划分也是很重要的;最后就是在我们原有掌握的基础上,进行网上查询,书籍查阅,来对设计进行扩充。
感谢这次课程设计,让我学到了很多,也感谢指导老师的辛勤付出。
经过2个星期的课程设计,我觉得最重要的还是活学活用,能将所学知识应用于实践,并学习如何开发完成一个完整的项目。