概述
计算机学院项 目 报 告2020 - 2021 学年 第 2 学期课程名称:Android移动开发技术项目名称: 单词本学生姓名:小组成员:2021年 6 月题目:单词本APP1需求分析与系统设计项目介绍此项目是一个帮助记忆单词的单词本,用户输入要记忆的单词,系统会自动保存到sqllte数据库中,用户可以自行设置界面风格。设置单词记忆顺序等,可以查找单词,删除单词,以及隐藏中文。可以帮助用户更好的记忆单词。功能需求单词本可以通.,下方主要介绍关于安卓期末大作业——单词本APP(源码+任务书)的全文内容,希望对你有所帮助。计算机学院
项 目 报 告
2020 - 2021 学年 第 2 学期
项目名称: 单词本
学生姓名:
小组成员:
2021年 6 月
题目:单词本APP
1需求分析与系统设计
- 项目介绍
此项目是一个帮助记忆单词的单词本,用户输入要记忆的单词,系统会自动保存到sqllte数据库中,用户可以自行设置界面风格。设置单词记忆顺序等,可以查找单词,删除单词,以及隐藏中文。可以帮助用户更好的记忆单词。
- 功能需求
- 单词本可以通过用户输入中英文,来实现单词的添加。
- 用户可以随意开关某个单词的中文释义
- 用户可以删除已经添加的单词
- 用户关机或者退出应用不会导致单词本内的单词丢失
- 用户可以自定义单词本中单词的顺序
- 可以选择自己喜欢的界面风格
- 用户可以快捷的查找某个单词在有道上的详细信息
- 用户可以查找某个单词
- 功能需求及示意图
- 长按拖住上下滑动可以设置单词的优先级
注:由于时间仓促,该部分的示意图以截图的形式替代。
1. CardVIEw 和 constraintLayout的布局切换
5.如何通过滑动删除单词和如何改变单词位置
1.5程序流程
- 程序启动后先通过MainActivity的onCreate方法
- 进入wordsFramgment类,通过MyAdaper new出单词列表
- 当通过监听Wordviewmodel发现数据发生改变时,会同时增删改单词列表条数
5.通过Word 建立数据库表和映射关系。
2系统实现
2.1类分析与设计
(1)Word类:
1.这个这个类定义了单词条目的属性:ID word chineseWord chineseInvisible 并同时映射到数据库对应的属性字段;
2.定义了set/get方法用于存取数据
(2)WordDao类:
1.dao层用注解定义了增删改查方法
A.
(3)WordDatabase类:
1.利用单例工厂模式,new了一个WordDataBase类,这个类继承了RoomDatabase,建立了数据库,用来通过getDatabase来实例化WordDao
Synchronized同步块只有一个再执行,反正多线程而new了多个实例
此方法构建并返回一个wordDao。同时此方法中还包含数据库的升级及修改方法
(4)WordRepository类:
(5)Wordviewmodel类:
1.通过调用WordRepository类的方法完成增删改查
2.主要功能是处理数据相关功能,返回的liveData可以监控数据变化,并再变化时调用相应方法来处理视图等。
(6)MainActivity类:
2.重写了返回键的方法
(7)AddFragment类:
2.进入界面后,将输入框聚焦在英语输入框上,并弹出键盘。
3.点击添加按钮后,通过Wordviewmodel将数据写入数据库,并通过导航回到主界面
(8)MyAdapter类
1.通过点击单词条,用intent并传入一个网址可以跳到有道词典搜索
2.通过查询数据库ChineseInvisible字段,初始化设置是否显示中文释义
(9)WordFragment类
2.在WordsFragment中设置了菜单功能,点击清空数据会弹出alertDialog对话框,若选择确认,则调用wordviewmodel中的deleteall()方法删除所以数据;点击切换视图时,会先在SharePreferences中获得现在时什么视图的值,然后调用recyclerVIEw的方法设置另一个视图。
3.用onChildDraw画滑动后面的灰色阴影和垃圾桶图标
2.2 界面布局
2.3关键实现
1.在AddFramgent中,若输入框两个都不为空,设置添加按钮可用
2.在MyAdapter中,监听开关,若发生改变显示/隐藏中文释义,同时修改数据库中ChineseVisible字段的值。
3.在WordsFragment中设置了菜单功能,点击清空数据会弹出alertDialog对话框,若选择确认,则调用wordviewmodel中的deleteall()方法删除所以数据;点击切换视图时,会先在SharePreferences中获得现在时什么视图的值,然后调用recyclerVIEw的方法设置另一个视图。
5.onMove()方法处理长按拖动事件,发生拖动时,替换两个Word的ID,livedate检测到数据发生改变,就重新绘画界面
3系统测试
3.1程序存在的问题
解决方法:再AddFagment中button触发方法中添加键盘回缩方法:
(3)若长按拖动速度过快,会导致有些单词的中文意思会自动隐藏。
(4)列表界面单词之间的分界不够明显
3.2运行过程示例
@H_419_611@
(4)切换视图: -成功
(6)点击单词后跳到有道词典搜索详细详细 --成功
4总结与建议
本课程学习了andorID的开发,经过本次项目,对androID开发的整体把握更加清楚。
通过模块化开发,对每个类更加清楚,对liveData..SharePreference..navigation等类的使用和数据库的操作有了更加深入的理解。
总结
以上是编程之家为你收集整理的安卓期末大作业——单词本APP(源码+任务书)全部内容,希望文章能够帮你解决安卓期末大作业——单词本APP(源码+任务书)所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。