【安卓开发】简单记账app功能实现开发-期末大作业个人总结

说在前面:

由于这一次的大作业涉及到的代码部分过于长,所以博客里不放相关代码;

工程&apk&记账app原型&素材资源链接:https://download.csdn.net/download/white2333/11234105

配套文档目录预览&资源链接:https://download.csdn.net/download/white2333/11234160

本博客涉及到的内容(目录):

  1. 项目内容介绍
  2. app所需实现功能分析
  3. 难点重点归纳
  4. 可参考CSDN合集
  5. 项目部分截图
  6. 个人总结&遇到的问题&解决方案

1.项目内容介绍:

根据老师给的相关pdf以及html网站合集可以总结得到:设计实现基于Android平台的记账app。简单分析一下自己的需求,对于衣食住行进行分类,然后记录每天的时间,记录下消费的原因,最重要的就是金额了,以及收入进账的记录。做每个月账单统计图表,分析自己当前的支出和收入。

2.app所需实现功能分析

  • 首次启动页:首次使用app,首次加载,点击开启记账,进入首页。
  • 首页:app主体界面,默认显示手机系统时间当月的账单以及当月的总支出、总收入。用户可通过按键< >查看其它月份账单和支出收入情况。
  • 记账页:app主要功能界面,主要功能有添加新账目,修改原有账目。
  • 分类页:分类设置界面,默认显示数据库原有分类条目。用户可长按分类条目显示编辑按钮条,编辑、删除(可多选)分类条目或隐藏编辑按钮条。同时在编辑按钮条隐藏的条件下,用户可以通过点击右下角的添加按钮添加分类条目。
  • 图表页:数据统计分类显示界面,默认显示手机系统时间当月账单的支出分类圆形图表,用户可通过点击收入按钮查看当月账单的收入分类圆形图表。同时用户可以通过< >按键查看其它月份的分类圆形图表。

页面跳转关系图如下:

3.重点难点归纳:

 

数据库的操作代码编写

本项目的重点,数据库中表的创建以及其他功能的实现非常容易出错,而且Android studio不会在因为数据库的操作错误而提示出具体的错误信息,app会直接终止运行,所以很难自己找出bug在哪。

 

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

这一点主要是针对以前从未接触过list以及从数据库读取显示的新手,第一次接触理解和操作起来都比较难,很容易在初始化列表以及读取item的时候出错。

 

隐藏显示新界面及动画的使用

由于动画的使用课堂涉及比较少,所以只能通过看博客以及自我理解来使用,很容易连动画xml文件如何创建都不知道。隐藏和显示界面需要自定义函数来实现,所以要判断的地方比较多,很容易出现判断不足或者显示和数据更改错误或未更改问题。

 

复选框的相关操作

复选框涉及到界面的显示以及按钮的显示,所以要在相关界面进行不断的判断,并且经常要读取被选项的相关数据,对于之前未接触过复选框相关操作的新手,容易忽略一些地方的判断,复选框的实现以及操作会显得比较复杂和繁琐

 

图表的统计显示

4.可参考的CSDN:

Android 判断Intent是否存在:

https://blog.csdn.net/top_code/article/details/17285695

 使用Intent传递对象:

https://blog.csdn.net/qq_41005535/article/details/79390548

https://blog.csdn.net/wei18791957243/article/details/82716737

https://blog.csdn.net/llengnuo/article/details/78109334

Android SQLite增删改查的语句:

https://blog.csdn.net/qq_30716173/article/details/50148151

Android ListView长按弹出CheckBox,实现全选,反选,批量删除功能:

https://blog.csdn.net/u013006960/article/details/52102839

Android 自定义CheckBox样式

https://blog.csdn.net/dodod2012/article/details/78780296

安卓编程之获取系统当前时间

https://blog.csdn.net/hou09tian/article/details/78209167

Android自定义View实战(圆饼图的实现)

https://www.jianshu.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改为自己相应的版本

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49123.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

管家婆软件创建账套提示:创建账套失败

我们在安装完管家婆软件后&#xff0c;在创建账套的时&#xff0c;可能会碰到这个错误&#xff1a;创建账套失败&#xff01;这个报错要怎么去解决呢&#xff1f; 问题原因1&#xff1a;这个提示一般是管家婆软件安装目录比较深&#xff0c;就比如A文件夹里面有个A1的文件夹&am…

【T+】将查询账套更换成可以业务操作的正式版账套

【问题描述】 在使用畅捷通T软件过程中&#xff0c; 由于某些原因&#xff0c;将已使用的账套设置成【查询版】&#xff0c;并且根据软件提示&#xff0c;设置后该账套只能查询使用&#xff0c;不可以进行业务操作。 并且【查询】账套不支持反操作。 设置成查询版后&#xff0c…

SAP中使用LSMW批量导入总账科目

遗留数据迁移平台&#xff0c;可以导入主数据&#xff1a;科目、资产主数据、物料主数据、供应商、客户主数据、成本中心、内部订单数据。。。。 FSP0 FSS0 分层导入&#xff1a;适合集团和分公司分别维护科目主数据&#xff0c;集团和公司自行维护科目主数据 FS00集中导入&a…

SAP系统 会计科目主数据详解

会计科目&#xff08;主数据&#xff09;概述&#xff1a; 每个公司代码均指定一个总帐的科目表。此科目表在配置中分配到公司代码&#xff0c;作为其运营科目表 每个总帐都是根据科目表建立的。所有总帐科目的定义均以有序形式包含在科目表内。定义主要由科目编号、科目名称…

工资管理系统(附源码,直接复制就可以跑起来)

分享一个Java Application的工资系统。 运行界面如下&#xff1a; 其他分类专栏也有一些其他的Java Web系统 点击分类专栏介绍查看 直接创建如下的5个Java类文件。 1.项目工程 2.CommonEmployee类 package study;import java.util.*;public class TestEMD {/*** len代表数组的…

如何快速为子公司创建SAP财务账套的操作步骤

相对来说在SAP上配置一家子公司比从0开始创建创建一家公司可以节省很多步骤&#xff0c;因为子公司的很多配置&#xff08;如科目表&#xff0c;科目&#xff0c;折旧表&#xff0c;折旧代码等&#xff09;可以沿用母公司的。本文就简单介绍一下创建子公司财务账套的配置步骤.只…

【U8+】用友U8+对账不平案例及方法总结

【问题需求】 在使用用友U8软件过程中&#xff0c;由于软件涉及到多方面的对账。 所以经常会遇到期初或结账时对账不平。 【经验分享】 在众多对账中&#xff0c; 只有当【总账上下级】&#xff08;即&#xff1a;总账与明细账对账&#xff09;不平的时候&#xff0c; 软件才…

Android课设——理财小助手

一&#xff1a;app介绍 理财小助手是一款利用Android studio软件实现的APP&#xff0c;可以录入每天的消费项目以及消费金额&#xff0c;同时也可以查找消费记录、统计消费总额。我用到的Android studio版本如下&#xff1a; 二、模块设计 下面是我实现的一些模块&#xff1a; …

SAP总账科目增强写入客商(BAPI导入)

正常SAP总账科目的客商是无法直接导入的&#xff0c;增强试了一下&#xff0c;发现有点问题。 正常凭证增强只要在增强结构增加字段字段后&#xff0c;在BAPI的 EXTENSION2 里赋值就行&#xff0c;这次不好用了。 跟踪了下标准程序&#xff0c;发现被这个地方的值覆盖了。 …

基于Android studio个人财务记账管理系统

1.注册登录模块&#xff1a;完成对用户的注册&#xff0c;以及用户登录应用的功能,对密码要求至少8位&#xff0c;可以识别出账号是否注册过&#xff0c;登录之后有欢迎词。 2.个人信息模块&#xff1a;完成对用户对自己的用户名修改&#xff0c;头像进行设置和修改的功能&…

一加七语音唤醒_一加8t有语音助手吗

一加手机本来没有语音助手&#xff0c;不过一加手机从氢OS 10.0开始支持语音助手小布&#xff0c;那么最新发布的一加8t有语音助手吗?下面一起来看看吧~ 品牌型号&#xff1a;一加8t 系统版本&#xff1a;氢OS 10.0 一加8t有语音助手吗? 一加8t手机有语音助手&#xff0c;它有…

纪念胡包钢研究员

昨日&#xff08;8月22日&#xff09;上午我在公众号发了一篇关于开源的文章&#xff0c;照例通过微信发给胡包钢老师&#xff0c;希望他给点建议&#xff0c;但未获回复。下午我从其他途径得知胡包钢老师在8月22日早上因病去世&#xff0c;犹如晴天霹雳。 胡包钢老师一直是我尊…

微软首席开发大师 查尔斯-西蒙尼

微软首席开发大师 查尔斯-西蒙尼 分类&#xff1a; 软件英雄 2011-11-12 14:33 118人阅读 评论(0) 收藏 举报 微软首席开发大师 查尔斯-西蒙尼 分类&#xff1a; 人物漫谈 2005-10-02 15:24 9921人阅读 评论(23) 收藏 举报 查尔斯—西蒙尼&#xff08;Charles Simonyi&am…

微软曾经的二号人物永远地离开了

参加 2018 AI开发者大会&#xff0c;请点击 大会官网 他是一位发明家、投资者、考古学家和慈善家&#xff0c;“他对微软做出的不可或缺的贡献”会让人们永远铭记。 据外媒 CNBC 今日早间报道&#xff0c;微软联合创始人之一保罗艾伦&#xff08;Paul Allen&#xff09;于当地时…

特斯拉:为什么我这么牛逼?

结束了旅行之后&#xff0c;父亲专门为我挑选了历史悠久、名声在外的奥地利斯蒂里亚省格劳姆茨市的理工学校&#xff0c;把我送到那里读书。我终于实现了自己期待已久的心愿&#xff0c;开始正式学习工程技术&#xff0c;并且获得了足够的资金支持。我下定决心&#xff0c;一定…

华为丁耘突发疾病去世

昨天的事情&#xff0c;看到了很多人发的朋友圈。 前阵子突发去世的是旷视科技的孙剑先生&#xff0c;相比于丁耘先生&#xff0c;孙剑博士在技术领域知名度更大&#xff0c;因为孙剑博士的事情&#xff0c;我问了一些圈内的朋友&#xff0c;很多机器学习上的技术文章大多数引用…

昔日“东方神童”逝世,4岁读完初中课程,17岁中科院硕博连读,网友:湖南华容的传说...

杨净 发自 凹非寺量子位 报道 | 公众号 QbitAI 他4岁读完初中&#xff0c;我4岁刚不尿裤子。 他8岁进入重点高中&#xff0c;我8岁刚学加减法。 他13岁考入大学&#xff0c;我13岁还和同学打架。 他17岁硕博连读&#xff0c;我17岁忙着早恋。 …… 最近&#xff0c;天涯论坛上一…

情人节——圣瓦伦丁节(St. Valentine's Day)

公元3世纪&#xff0c;罗马帝国出现全面危机&#xff0c;经济凋敝&#xff0c;统治阶级腐败&#xff0c;社会动荡不安&#xff0c;人民纷纷反抗。贵族阶级为维护其统治&#xff0c;残暴镇压民众和基督教徒。是时有一位教徒瓦伦丁&#xff0c;被捕入狱。 在狱中&#xff0c;他以…

微软亚洲研究院机器学习组的首席研究员刘铁岩谈AI

作者&#xff1a;微软亚洲研究院 链接&#xff1a;https://www.zhihu.com/question/46563853/answer/153380355 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 针对这个问题&#xff0c;我们邀请了微软亚洲研究院机器…

html母亲节主题网页源码0012

网页截图 首页&#xff1a; 节日特色&#xff1a; 节日礼物&#xff1a; 颂歌母亲&#xff1a; 节日留言&#xff1a; 部分代码展示&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml…