基于java+MPAndroidChart开发的小账本app

2024-03-23 14:59

本文主要是介绍基于java+MPAndroidChart开发的小账本app,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.小账本app展示
  • 2.app使用演示
  • 3.小账本app介绍
  • 4.系统部分代码
  • 5.自定义为你的app(修改为自己的)
  • 6.app代码下载地址
  • 7.总结

1.小账本app展示

  1. 首页面
    首页面是一个弹窗式的登录页面
    在这里插入图片描述
  2. 用户登录后数据库中查询用户数据,并显示当前用户的账单列表。
    在这里插入图片描述
  3. 对当前的用户的账单进行统计展示
    在这里插入图片描述

2.app使用演示

  1. app使用演示。如果有些页面背景看起来可能不是你想要的感觉,你可以很方便地在代码中修改成你想要的背景下面会有修改演示
    在这里插入图片描述

3.小账本app介绍

  1. 该项目系统包括登录/注册/登出功能管理账单功能,账单统计且包括图表展示功能。
  2. app包含SQLite数据库的使用,可以满足对用户数据的分离。
  3. 页面背景可以自定义为你想要的背景。
  4. 系统文件结构:
    在这里插入图片描述

4.系统部分代码

1.弹窗式登录页面-LoginFragment.java

public class LoginFragment extends DialogFragment implements View.OnClickListener {private UserDao userDao = null;private EditText usernameEditText;private EditText passwdEditText;@NonNullpublic Dialog onCreateDialog(Bundle savedInstanceState) {AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());LayoutInflater inflater = getActivity().getLayoutInflater();View view = inflater.inflate(R.layout.fragment_login, null);//获取弹窗上的组件usernameEditText = (EditText) view.findViewById(R.id.username);passwdEditText = (EditText) view.findViewById(R.id.passwd);Button login_btn = view.findViewById(R.id.login_btn);TextView registerButton = view.findViewById(R.id.login_register);
//        System.out.println("test");//给 登录 添加点击事件login_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {String username = usernameEditText.getText().toString();String passwd = passwdEditText.getText().toString();//获取数据库链接DBHelper dbHelper = new DBHelper(getActivity());SQLiteDatabase writableDatabase = dbHelper.getWritableDatabase();//用dao保存数据UserDao userDao = new UserDao(writableDatabase);//查询是否存在输入的用户名以及对应的密码的记录Cursor cursor = writableDatabase.query("users", new String[]{"_id","username", "passwd","age"},"username=? and passwd=?", new String[]{username, passwd},null, null, null);if (cursor.moveToFirst()) { //说明用户名和密码正确
//                    Intent intent = new Intent(getActivity(), MainActivity.class);  //错误
//                    startActivity(intent);cursor.close();dismiss();//结束当前弹窗//设置登录成功标志Data.setIsLogin(true);//设置当前用户的idSystem.out.println(userDao.getUserIdByUserName(username));Data.setUserId(userDao.getUserIdByUserName(username));Intent intent = new Intent(getActivity(), MainActivity.class);Toast.makeText(getActivity(),"登录成功!", Toast.LENGTH_LONG).show();startActivity(intent);} else {//将用户名密码框内的内容设置为空passwdEditText.setText("");usernameEditText.setText("");Data.setIsLogin(false);Toast.makeText(getActivity(),"用户名或密码错误,请重新输入", Toast.LENGTH_LONG).show();}
//                System.out.println("点击了登录事件");}});
//        System.out.println("test11111111111111111111");registerButton.setOnClickListener(this);builder.setView(view);return builder.create();}@Overridepublic void onClick(View view) {
//        System.out.println(view.getId() == R.id.login_register);//判断点击的是哪个组件,从而进行不同的操作switch (view.getId()) {case R.id.login_register:
//               System.out.println("test2222222222222222222222222");//跳转到注册页面Intent intent = new Intent(getActivity(), RegisterActivity.class);startActivity(intent);break;}}
}

5.自定义为你的app(修改为自己的)

  1. 项目中具有详细的代码注释,可以根据所需替换其中的图片或者文字即可。
    例如:修改账单的类型(自定义为你想要的类型)
    在这里插入图片描述
    再修改一下统计页面(StatisticActivity.java)中的名字即可。

注意:如果你不会修改为你自定义的账单类型或其他,你随时可以和我私信,我们可以随时交流。

6.app代码下载地址

下载需要一点点钱(连一瓶水钱都不要,请不要在学习上花钱 吝啬你值得为你的学习或课设投资
点次下载

7.总结

小账本app可以作为你的android课程实验设计(可二次开发),或者android开发课程的实验,绝对让你的老师满意。你可以从中学到如何使用弹窗式的登录以及使用SQLite数据库进行校验用户信息,并查询数据库中用户账单信息进行展示。并且使用了MPAndroidChart模块统计的数据进行可视化展示

这篇关于基于java+MPAndroidChart开发的小账本app的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838675

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏