首页 > 编程知识 正文

android开发实训报告,可以自定义的记账软件

时间:2023-05-03 13:50:47 阅读:53126 作者:3447

前面说:

因为这次大工作涉及的代码部分太长,所以博客中放不下相关代码;

工程apk计费app原型素材资源链接: https://download.csdn.net/download/white 2333/11234105

文档目录预览资源链接: https://download.csdn.net/download/white 2333/11234160

与此博客相关的内容(目录) :

项目内容介绍

APP所需的安装功能分析

重点总结难点

可以参考CSDN合集

项目的部分截图

总结个人面临的问题解决方案

1 .项目内容介绍:

根据老师给的相关pdf和html网站的集合,总结了设计并实现基于安卓平台的计费APP。 简要分析自己的需求,对衣食住进行分类,记录每天的时间,记录消费的原因,最重要的是金额和收入收款的记录。 绘制每月发票统计图表,分析自己目前的支出和收入。

2.app所需功能分析

首次启动页面:首次使用APP,首次加载,单击打开记账进入首页。

首页: app主机界面,默认显示手机系统时间当月发票和当月总支出、总收入。 用户可以通过按键查看其他月份的发票和支出收益情况。

记账页面: APP的主要功能接口。 主要功能是添加新账簿,修改原有账簿。

分类页面:分类设定画面。 默认情况下,显示数据库的原始分类条目。 用户可以长按分类项目以显示编辑按钮栏,编辑、删除分类项目以及隐藏编辑按钮栏。 如果隐藏了编辑按钮栏,用户可以单击右下角的“添加”按钮来添加分类。

图表页面:数据统计分类显示画面。 默认情况下,显示手机系统时间当月发票的支出分类饼图,用户可以通过单击收入按钮查看当月发票的收入分类饼图。 另外,用户可以通过按键查看其他月份的分类饼图。

页面跳转的关系图如下。

3 .重点难点总结:

数据库的操作码编写

本项目的重点是在数据库中创建表和实现其他功能非常容易出错,Android studio由于数据库操作错误而没有提供具体的错误消息,app直接结束运行,因此很难自行发现错误

RecyclerView显示和布局以及item样式设置

这主要面向以前从未接触过list,从数据库读取显示的初学者,初次接触难以理解和操作,在列表初始化和item读取时容易发生错误。

隐藏新界面和动画的使用

因为使用动画的教室相对较少,所以只能通过浏览博客和自我理解来使用,甚至不知道动画xml文件是如何创建的。 隐藏和显示界面需要自定义函数来实现,需要判断的地方很多,容易出现判断不足、显示和数据变更错误以及未变更的问题。

复选框的相关操作

由于复选框涉及到屏幕的显示和按钮的显示,因此必须在相关屏幕上不断做出判断,并且必须始终阅读选中的相关数据,对于至今为止还没有接触过与复选框相关操作的初学者来说,有些地方的判断很容易被忽视

图表统计显示

略论

4 .可供参考的CSDN :

Android判断Intent是否存在:

3359 blog.csdn.net/top _ code/article/details/17285695

使用互联网传递对象:

3359 blog.csdn.net/QQ _ 41005535/article/details/79390548

3359 blog.csdn.net/Wei 18791957243/article/details/82716737

3359 blog.csdn.net/llengnuo/article/details/78109334

要添加或删除在Android SQLite中修改的语句:

3359 blog.csdn.net/QQ _ 30716173/article/details/50148151

长按Android ListView弹出复选框,实现全选、逆向选择、批量删除功能:

3359 blog.csdn.net/u 013006960/article/details/52102839

安卓自定义CheckBox样式

3359 blog.csdn.net/dodod 2012/article/details/78780296

Android编程检索系统的当前时间

3359 blog.csdn.net/Hou 09 Tian/article/details/78209167

安卓定制View实战(实现饼图)

https://www.jian

shu.com/p/dff5dd124b0d

Java对Arraylist的常用操作

https://blog.csdn.net/zy20120580223/article/details/80294717

对ArrayList某一属性相同的数据进行合并算法

https://blog.csdn.net/liu_yulong/article/details/84378098

5.项目部分截图:

6.个人总结:在两个星期的app制作以及一个星期的课程设计报告编写中;学会了怎样在Android studio中灵活使用数据库,并且第一次接触到了动画的使用还有list的使用。同时学会了怎样在比较混乱的页面跳转关系中整理出页面跳转图进而在带参数以及不带参数的两种页面跳转方式中进行选择。目前对页面跳转方法掌握的比较全面。对实验过程中掌握了新的比较实用的UI布局方法。同时掌握了很多课本上没有的相关功能的实现方法对自己编写的项目越来越熟悉,测试和debug也越来越上手。

遇到的问题:

问题1:注释掉清空全部数据库的测试代码后,进行页面跳转之后再返回读取数据库数据的recylerView界面时发现之前插入的数据均未显示,以及之前删除的数据也再次恢复(设置了初始数据的情况)才发现数据库读取出现了问题,不然就是根本没有写进数据库。

解决方法:在编写Classify页面的项目添加时发现成功插入了数据库,并且经过多个页面跳转之后仍然可以正常读取,

从而返回去检查home_page的数据库插入问题,经过对比发现在插入数据库时设定的主键id没有用代码插入,

所以数据库插入出现了问题,经过修改数据库的创建代码之后(即创建数据库放弃id这个数据项,设置新主键)可以正确读取数据库。

问题2&解决方法:在解决问题1的时候遇到了另一个问题,一开始的解决方法是设定一个新的int数据来给id赋值,在插入数据时进行id++操作。这样插入数据是没有问题的,后来发现在重新启动app的情况下id会重新从0开始自增。导致主键重复,数据插入失败。所以在了解系统在创建表的时候会自动加入一个rowid数据项之后选择了放弃id这个数据项。

问题3:也是在解决问题1的时候遇到的问题,在确定放弃id这个数据项之后,我选择了直接在原来创建数据库的代码上删除了创建id数据项的语句。之后启动项目崩溃。检查之后发现由于原来已经创建了表和数据库,修改代码后再次创建了相同表名的表导致表重复无法重新创表。

解决方法:修改了表名也在数据库中删除了原表。

问题4:界面跳转问题,Finish()方法的缺陷;在Account界面利用startActivity()跳转到Classify界面并且选择完item返回Account界面时一开始选择的也是startActivity()跳转所以导致Account界面原本打算跳转到home_page的finish()方法跳转到了Classify界面

解决方法:将Classify跳转回Account界面的方法修改成了finish()方法则这样不会修改Account界面的上一个界面是home_page界面

问题5:初始化账目list收入支出金额text颜色显示问题,想要达到的效果是收入金额Text红色显示,支出金额Text黑色显示。但是实现的效果是,在插入金额时,list自动更新时是达到了想要的效果,但是重开app后,所有的金额都会变成布局文件中设定的初始颜色。再插入还是会有红黑之分。

解决办法:在寻求了同学的帮助下,不断排查了代码发现了问题;在改变Text颜色的代码之前进行的判断字符串是”收入”还是”支出”用的是”==”判断,在修改成equal之后该bug被解决。引起这个的原因主要是在判断的时候读取的字符串不是从数据库读取的,而是直接从布局中读取的,尽管显示出来有支出收入之分,但是读取时读的都是布局初始化的内个字段,以本项目为例,布局文件始终以支出为初始显示Text所以重开app之后所有收入支出字段的颜色又会被统一成黑色。

问题6:若第一次饼图设置pieValue数据分别为20,30,50;则控件默认以后都是数据之和为100时饼图才会全部显示,否则,若重新设置pieValue值为20,30;则会显示半圆。

解决方法:将pieValue按百分比设置,使之和一直为1即可,如上可改写为0.2,0.3,0.5;第二次重新设置0.4,0.6即可,故我们写了一个计算百分比的函数,每次要从数据库读取数据显示在饼图上时,先把读取到的数据计算出各自的百分比,再显示到饼图上。

问题7&解决方法:打开新项目后,R文件无法识别;将build.gradle中的classpath改为自己相应的版本

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。