安卓期末大作业——单词本APP(源码+任务书)

编程之家收集整理的这篇文章主要介绍了安卓期末大作业——单词本APP(源码+任务书)编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

计算机学院项 目 报 告2020 - 2021 学年 第 2 学期课程名称:Android移动开发技术项目名称: 单词本学生姓名:小组成员:2021年 6 月题目:单词本APP1需求分析与系统设计项目介绍此项目是一个帮助记忆单词的单词本,用户输入要记忆的单词,系统会自动保存到sqllte数据库中,用户可以自行设置界面风格。设置单词记忆顺序等,可以查找单词,删除单词,以及隐藏中文。可以帮助用户更好的记忆单词。功能需求单词本可以通.,下方主要介绍关于安卓期末大作业——单词本APP(源码+任务书)的全文内容,希望对你有所帮助。

计算机学院

项 目 报 告

2020 - 2021 学年 第 2 学期

课程名称 AndroID移动开发技术

项目名称: 单词本

学生姓名:

小组成员:

2021年 6 月

题目:单词本APP

1需求分析与系统设计

  1. 项目介绍

此项目是一个帮助记忆单词的单词本,用户输入要记忆的单词,系统自动保存sqllte数据库中,用户可以自行设置界面风格。设置单词记忆顺序等,可以查找单词,删除单词,以及隐藏中文。可以帮助用户更好的记忆单词。

  1. 功能需求

  1. 单词本可以通过用户输入中英文,来实现单词的添加
  2. 用户可以随意开关某个单词的中文释义
  3. 用户可以删除已经添加的单词
  4. 用户关机或者退出应用不会导致单词本内的单词丢失
  5. 用户可以自定义单词本中单词的顺序
  6. 可以选择自己喜欢的界面风格
  7. 用户可以快捷的查找某个单词在有道上的详细信息
  8. 用户可以查找某个单词
    1. 功能需求及示意图

  1. 用户点击加号按钮输入单词,键盘自动弹出并焦点在输入框,用户输入英文和中文释义,单词本上将在最上面显示这个单词,并会有下拉动画用户可以通过上方放回箭头取消输入。

  1. 用户可以通过单词盘边的按钮关闭或开启中文意思

  1. 向右滑可以删除单词,同时底部提示信息,可以撤销删除,点击撤销可以还原被删除的单词

  1. 长按拖住上下滑动可以设置单词的优先级

  1. 搜索可以搜索相关的单词

  1. 菜单可以选择切换界面或者删除全部单词,将以卡片/列表显示单词

注:由于时间仓促,该部分的示意图以截图的形式替代。

1.4本程序需解决的有关技术问题

1. CardVIEw 和 constraintLayout的布局切换

2.通过继承asyncTask实现多线程查询数据库

3.查询数据库过程中多个类的调用和封装解耦,模块化开发

4.通过livedate监听数据变化来改变视图显示

5.如何通过滑动删除单词和如何改变单词位置

6.各个framgement之间的切换导航

1.5程序流程

  1. 程序启动后先通过MainActivity的onCreate方法

  1. 进入wordsFramgment类,通过MyAdaper new出单词列表

  1. 当通过监听Wordviewmodel发现数据发生改变时,会同时增删改单词列表条数

  1. 对数据改变的方法通过Wordviewmodel类中的方法调用WordReposity中的方法调用WordDatabase或WordDao中的方法进行增删改或者查询

5.通过Word 建立数据库表和映射关系。

2系统实现

2.1类分析与设计

(1)Word类:

1.这个这个类定义了单词条目的属性ID word chineseWord chineseInvisible 并同时映射到数据库对应的属性字段;

2.定义了set/get方法用于存取数据

(2)WordDao类:

1.dao层用注解定义了增删改查方法

对于复杂查询,再注解中定义了SQL语句

A.

B.模糊查询并按倒叙排序

(3)WordDatabase类:

1.利用单例工厂模式,new了一个WordDataBase类,这个继承了RoomDatabase,建立了数据库,用来通过getDatabase来实例化WordDao

Static 可以不需要new 就可以调用方法

Synchronized同步块只有一个再执行,反正多线程而new了多个实例

方法构建并返回一个wordDao。同时此方法中还包含数据库升级修改方法

(4)WordRepository类:

1.多线程调用WordDao的方法完成增删改查。

2.主要功能是实现多线程

(5)Wordviewmodel类:

1.通过调用WordRepository类的方法完成增删改查

2.主要功能是处理数据相关功能,返回的liveData可以监控数据变化,并再变化时调用相应方法来处理视图等。

(6)MainActivity类:

1.设置了视图导航

2.重写了返回键的方法

(7)AddFragment类:

1.定义了添加单词界面的功能

2.进入界面后,将输入框聚焦在英语输入框上,并弹出键盘

3.点击添加按钮后,通过Wordviewmodel将数据写入数据库,并通过导航回到主界面

(8)MyAdapter类

1.通过点击单词条,用intent并传入一个网址可以跳到有道词典搜索

2.通过查询数据库ChineseInvisible字段,初始化设置是否显示中文释义

(9)WordFragment类

1搜索功能

2.在WordsFragment中设置菜单功能,点击清空数据会弹出alertDialog对话框,若选择确认,则调用wordviewmodel中的deleteall()方法删除所以数据;点击切换视图时,会先在SharePreferences中获得现在时什么视图的值,然后调用recyclerVIEw的方法设置一个视图。

3.用onChildDraw画滑动后面的灰色阴影和垃圾桶图标

4.点击悬浮按钮跳到添加单词界面

5.移动单词和滑动删除单词功能

2.2 界面布局

2.3关键实现

1.在AddFramgent中,若输入框两个都不为空,设置添加按钮可用

2.在MyAdapter中,监听开关,若发生改变显示/隐藏中文释义,同时修改数据库中ChineseVisible字段的值。

3.在WordsFragment中设置菜单功能,点击清空数据会弹出alertDialog对话框,若选择确认,则调用wordviewmodel中的deleteall()方法删除所以数据;点击切换视图时,会先在SharePreferences中获得现在时什么视图的值,然后调用recyclerVIEw的方法设置一个视图。

4.滑动删除后会弹出一个snackbar,点击即可撤销删除

5.onMove()方法处理长按拖动事件,发生拖动时,替换两个Word的IDlivedate检测到数据发生改变,就重新绘画界面

3系统测试

3.1程序存在的问题

(1)再添加单词页面点击上方或下方的返回,键盘不会消失

解决方法:再AddFagment中button触发方法添加键盘回缩方法

(2)在添加单词页面中,没有自动聚焦到英语单词输入框

解决方法:再onActivityCreate中添加方法

(3)若长按拖动速度过快,会导致有些单词的中文意思会自动隐藏。

(4)列表界面单词之间的分界不够明显

解决方法 再每个列表条目上添加下划线

  1. 在部分手机版本中会出现搜索后单词丢失BUG

3.2运行过程示例

(1)添加单词: ---单词添加成功

(2)删除单词: ---删除单词成功

@H_419_611@

(3)中文释义显示/隐层: -成功

(4)切换视图: -成功

(5)搜索功能: --成功

(6)点击单词后跳到有道词典搜索详细详细 --成功

4总结与建议

本课程学习了andorID的开发,经过本次项目,对androID开发的整体把握更加清楚。

通过模块化开发,对每个类更加清楚,对liveData..SharePreference..navigation等类的使用数据库的操作有了更加深入的理解。

https://download.csdn.net/download/qq_39154376/85355334

icon-default.png?t=M4AD

https://download.csdn.net/download/qq_39154376/85355334

总结

以上是编程之家为你收集整理的安卓期末大作业——单词本APP(源码+任务书)全部内容,希望文章能够帮你解决安卓期末大作业——单词本APP(源码+任务书)所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Android文章

前言为什么会有这篇文章呢,是因为之前关于TabLayout的使用陆陆续续也写了好几篇了,感觉比较分散,且不成体系,写这篇文章的目的就是希望能把各种效果的实现一次性讲齐,所以也有了标题的「看这篇就够了」。TabLayout作为导航组件来说,使用场景非常的多,也意味着要满足各种各样的需求。在效果实现上,有很多同学都选择自定义View来做,定制性高,但易用性、稳定性、维护性不敢保证,使用官方组件能避免这些不确定性,一是开源,有很多大佬共建;二是经过大型app验证,比如google play;有了这两点,基本
一年一年过的太快了,还记得两年前写了 Android 11(R) 的适配文章,这一转眼都13(T)了,今天我们一起来学习适配下 Android 13 吧!
Ability是应用所具备“能力”的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为和两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。......
UNI-APP安卓本地离线打包图文详解保姆级教程
随着社会的变化,产业的进化,编程也开始了他的变化。从最开始的二进制编码语言->低级程序语言,到现在的高级编程语言以及现在慢慢探索超高级高级语言【程序可视化,可视化编程,让编程不再枯燥】。那么是不是只要能看懂界面就可以进行编程,写出自己的小程序了呢,下面我们来一起来看看ivx。......
首先感谢酷安社区,里面有很多参考资料,但是对小白上手不太友好,刚好我也是第一次刷,所以我这边就写了一篇完整的图文教程,希望可以帮到你。现在市面上的大部分随身 Wi-Fi 除了最基本充当网络热点的功能以外,它还是一块非常标准的(这取决于你的购买),而且它跑的还是安卓系统。可以刷 系统,甚至你还能刷 成为软路由,更棒的是 4G 和 Wi-Fi 、USB 等功能都正常工作。一般的商家宣传说的无需插卡其实都是内置了 eSIM卡,但大部分还是留有卡槽(大卡槽,小卡需要卡套),切记不要激活他内置的流量卡,说白了就是
随着人们生活质量的不断提高,外出旅游的需求也日益增多,旅游肯定需要一款App来帮助游客寻找景点路线,随时订餐,还可以预订酒店入住,针对这样的背景,这款旅游App诞生了。
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注