基于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中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.