安卓期末大作业-记账app(含源码+导出app+运行截图)
开发软件:Android Studio
开发语言:Java
2023年上半年移动开发期末大作业记账app,老师给了95分,可以记录各种类型的账目支出记录,收入记录,存储到数据库中,可以隐藏账目记录,可以记录和删除记录,还可以将收支记录转图表分析,也可清空所有数据。具体如下图所示:
进入软件界面:
账目支出记录,支出分各种类型区分
收入记录记账如下所示:
账目记录如下所示:
账目可以隐藏起来:
底部功能按钮如图所示:
可以选择一键清空数据:
记账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/9050434