首页 > 编程语言 >安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开

时间:2024-01-02 15:01:52浏览次数:55  
标签:headerView mainlv 记录 app top id 源码 安卓

安卓期末大作业-记账app(含源码+导出app+运行截图)

开发软件:Android Studio
开发语言:Java
2023年上半年移动开发期末大作业记账app,老师给了95分,可以记录各种类型的账目支出记录,收入记录,存储到数据库中,可以隐藏账目记录,可以记录和删除记录,还可以将收支记录转图表分析,也可清空所有数据。具体如下图所示:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据

进入软件界面:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据库_02


账目支出记录,支出分各种类型区分

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_ide_03


收入记录记账如下所示:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据_04


账目记录如下所示:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据_05


账目可以隐藏起来:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_ide_06


底部功能按钮如图所示:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据库_07


可以选择一键清空数据:

安卓期末大作业-记账app(含源码+导出app+运行截图)安卓期末大作业-记账app(含源码+导出app+运行截图) 开发软件:Android Studio 开发语言:Java 2023年上半年移动开_数据_08


记账app主要代码如下所示:

private void setLVLongClickListener() {

todayLv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

@Override

public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

if (position == 0) {

//点击了头布局,不用进行操作

return false;

}

int pos = position - 1;

AccountBean clickBean = mDatas.get(pos);//得到正在被点击的这条信息

//弹出提示用户是否删除对话框

showDeleteItemDialog(clickBean);

return false;

}

});

}

/* 弹出是否删除某一条记录的对话框 /
private void showDeleteItemDialog(final AccountBean clickBean) {
//创建对话框的建筑类
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(“提示信息”).setMessage(“您确定要删除这条记录么?”)
.setNegativeButton(“取消”,null)
.setPositiveButton(“确定”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int click_id = clickBean.getId();
//执行删除的操作
DBManager.deleteItemFromAccounttbById(click_id);//此时只是从数据库当中删除
mDatas.remove(clickBean);//实时刷新,移除集合当中的对象
adapter.notifyDataSetChanged();//提示adapter更新数据
setTopTvShow();//顶部数据进行更新,改变头布局TextView显示的内容
}
});
builder.create().show();//生成对话框对象并显示出来
}
/
 给ListView添加头布局的方法 /
private void addLVHeaderView() {
//将布局转化成View对象
headerView = getLayoutInflater().inflate(R.layout.item_mainlv_top, null);
//设置头布局
todayLv.addHeaderView(headerView);
//查找头布局当中需要用到的控件
topOutTv = headerView.findViewById(R.id.item_mainlv_top_tv_out);
topInTv = headerView.findViewById(R.id.item_mainlv_top_tv_in);
topBudgetTv = headerView.findViewById(R.id.item_mainlv_top_tv_budget);
topConTv = headerView.findViewById(R.id.item_mainlv_top_tv_day);
topShowIv = headerView.findViewById(R.id.item_mainlv_top_iv_hide);
topBudgetTv.setOnClickListener(this);
headerView.setOnClickListener(this);
topShowIv.setOnClickListener(this);
}
/
 获取今日的具体事件 */

private void initTime() {

Calendar calendar = Calendar.getInstance();

year = calendar.get(Calendar.YEAR);

month = calendar.get(Calendar.MONTH) + 1;

day = calendar.get(Calendar.DAY_OF_MONTH);

}

//当activity获取焦点时会调用的方法,返回的时候进行数据的加载更新

@Override

protected void onResume() {

super.onResume();

//加载数据库数据

loadDBData();

//更新顶部布局当中的数据

setTopTvShow();

}

标签:headerView,mainlv,记录,app,top,id,源码,安卓
From: https://blog.51cto.com/u_15681752/9069971

相关文章

  • 2023Android安卓期末大作业-纪念日APP
    Android安卓期末大作业-纪念日APP“我们”,记录结婚纪念日也可以作为备忘录APPapp启动截图:APP打开首页可以修改日期部分代码publicvoidinitView(){ImmersionBar.with(this).statusBarDarkFont(true)//状态栏字体是深色,不写默认为亮色......
  • 全网最新整理覆盖全平台电脑、手机的7个开源免费流媒体直播平台以及完整源码和文档
    全网最新整理覆盖全平台电脑、手机的7个开源免费流媒体直播平台以及完整源码和文档。如今上到太空站、下到在家养猪,各行各业都在直播。直播之所以如此盛行,就是因为其能够给粉丝观众亲临现场的感受,以及直播过程中所附带着巨大的经济效益。这种方式可以为无法亲自到场的人表演、分享......
  • uniapp 新建组件
    1.新建文件夹components文件夹名称必须是components,否则组件无法自动导入2.新建组件3.编辑组件components/logo/logo.vue<template> <imgsrc="https://img.alicdn.com/imgextra/i1/O1CN01EI93PS1xWbnJ87dXX_!!6000000006451-2-tps-150-150.png"/></template>4.使用组件......
  • Xcode 15 beta 7 (15A5229h) - Apple 平台 IDE
    Xcode15beta7(15A5229h)-Apple平台IDEIDEforiOS/iPadOS/macOS/watchOS/tvOS/visonOS作者主页:sysin.orgvisonOS支持已更新。Xcode15使您能够为所有Apple平台开发、测试和分发应用程序。通过增强的代码完成、交互式预览和实时动画,更快地编写和设计您的应用程序。使用......
  • Mybatis-Wrapper导致的生产事故
    近期遭遇了一次生产环境的严重告警,涉及慢接口和CPU过载。经过排查,发现问题根源在于一段使用MyBatis的查询代码。当传入空列表作为查询条件时,MyBatis会忽略该条件,导致全表扫描,进而引发系统资源耗尽和频繁的FullGC灾难回顾前两天晚上,正在收拾包准备下班,电脑刚放进包里,我的手机......
  • 安卓之动画使用场景以及优劣分析
    一、文章摘要自从安卓系统诞生以来,其强大的自定义能力和丰富的应用场景使得动画成为了重要的组成部分。安卓开发者们可以通过简单的API和控件实现各种各样的动画效果,不仅提高了用户体验,还增强了应用的视觉效果。本文将从使用场景和优劣分析两个方面,深入探讨安卓动画的应用。二、正......
  • netty源码:(38)ByteToMessageDecoder类
    ByteToMessageDecoder是一个解码器,是一个ChannelInboundHandlerAdapter,它用来将ByteBuf中的字节流解析成另外的消息格式。它的核心方法是decode,decode方法的in参数表示接收字节的来源,out参数表示节码之后输出的目的地。比如,StringDecoder继承了ByteToMessageDecoder,它的decod......
  • netty源码:(40)ReplayingDecoder
    ReplayingDecoder是ByteToMessageDecoder的子类,我们继承这个类时,也要实现decode方法,示例如下:packagecn.edu.tju;importio.netty.buffer.ByteBuf;importio.netty.channel.ChannelHandlerContext;importio.netty.handler.codec.ReplayingDecoder;importjava.nio.charset.C......
  • 记录 | ubuntu源码编译python3.7.3(指定版本)
    一、安装依赖包sudoapt-getinstall-ymakebuild-essentiallibssl-devzlib1g-devsudoapt-getinstall-ylibbz2-devlibreadline-devlibsqlite3-devwgetcurlllvmsudoapt-getinstall-ylibncurses5-devlibncursesw5-devxz-utilstk-dev二、从Python网页中找......
  • Python 爬虫,eccoid 网站作品信息采集爬虫源码!
    一个比较简单的爬虫,适合练手学习使用,主要是爬取和采集网站的作品信息,包括标题、内容及图片,其中图片采用了多线程爬取,算是比较简单的参考和学习案例,协议头的获取也做了随机处理,如果你正在找练手网站,不妨尝试爬取下载数据。考虑到外网爬取,存在访问超时以及出错的情况发生,所以采用了三......