基于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

相关文章

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

JAVA项目swing转javafx语法规则以及示例代码

《JAVA项目swing转javafx语法规则以及示例代码》:本文主要介绍JAVA项目swing转javafx语法规则以及示例代码的相关资料,文中详细讲解了主类继承、窗口创建、布局管理、控件替换、... 目录最常用的“一行换一行”速查表(直接全局替换)实际转换示例(JFramejs → JavaFX)迁移建

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加