package com.example.bookkeeping.slice;
import com.example.bookkeeping.ResourceTable;
import com.example.bookkeeping.DisplayFormat;
import com.example.bookkeeping.model.Const;
import com.example.bookkeeping.model.IndexBean;
import com.example.bookkeeping.model.RecordBean;
import com.example.bookkeeping.model.RecordDbStore;
import com.example.bookkeeping.provider.StatisticsProvider;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.window.dialog.CommonDialog;
import ohos.data.DatabaseHelper;
import ohos.data.orm.OrmContext;
import ohos.data.orm.OrmPredicates;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
import java.text.SimpleDateFormat;
import java.time.Month;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.Random;
import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT;
import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_PARENT;
public class ViewByTimeSlice extends AbilitySlice {
static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0, "MY_TAG");
private ListContainer curDayRecordContainer;
private final String[] weeks = {"", "周末", "周一", "周二", "周三", "周四", "周五", "周六"};
private Text showDateText;
private Text allDayInputText;
private Text allDayOutputText;
private Text allDayBalanceText;
private Image show_more_btn;
private final String[] viewTypeList = {"按照天统计", "按照月统计", "按照年统计", "所有记录"};
private int state = 0; // 0表示按照天统计, 1表示按照月份统计 2表示按照年统计 3查找所有记录
private Calendar showTimeCalender = Calendar.getInstance();
private Text viewTypeText;
private Image selectTimeImage;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_viewbytime_layout);
// 初始化界面
initComponent();
// 添加响应事件
addListener();
// 重新加载数据
reloadRecord();
}
/**
* 向数据库中添加测试数据
*/
private void addTextData() {
// ormContext为对象数据库的操作接口,之后的增删等操作都是通过该对象进行操作
DatabaseHelper helper = new DatabaseHelper(this);
OrmContext ormContext = helper.getOrmContext(Const.DB_ALIAS, Const.DB_NAME, RecordDbStore.class);
String[] kindlist = {"收", "支"};
String[][] catelist = {{"收入>生活费", "收入>家教收入", "收入>奖学金"}, {"食品酒水>饮料", "学习进修>学习工具", "衣服饰品>衣服裤子",
"其他购物>运动装备", "恋爱基金>一起吃饭", "行车交通>公共交通", "交流通讯>座机费", "寝室费用>公摊费用", "休闲娱乐>视频会员",
"人情往来>送礼请客", "医疗保健>口罩", "金融保险>银行手续", "其他杂项>烂账损失"}};
Random random = new Random();
Calendar testCalender = Calendar.getInstance();
for(int year = 2021; year<=2022; year++){
for(int month = 8; month<= 12; month++){
for(int day = 5; day<=20; day++){
HiLog.info(label, "haha");
testCalender.set(year, month, day);
for(int i = 0; i<1; i++){
int index1 = random.nextInt(2);
int index2 = random.nextInt(catelist[index1].length);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
RecordBean recordBean = new RecordBean(System.currentTimeMillis(), kindlist[index1],
catelist[index1][index2], (double) random.nextInt(2000), "memo", testCalender);
ormContext.insert(recordBean); //插入内存
}
}
}
}
ormContext.flush();
ormContext.close();
}
/**
* 添加响应事件
*/
private void addListener() {
selectTimeImage.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
if(state == 3){
return;
}
CommonDialog cd = new CommonDialog(getContext());
cd.setCornerRadius(50);
DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_selecttime_dialog, null, false);
Text titleText = (Text) dl.findComponentById(ResourceTable.Id_title_text);
DatePicker datePicker = (DatePicker) dl.findComponentById(ResourceTable.Id_date_pick);
datePicker.setWheelModeEnabled(true);
Button ok_btn = (Button) dl.findComponentById(ResourceTable.Id_calender_ok);
Button cancel_btn = (Button) dl.findComponentById(ResourceTable.Id_calender_cancel);
if(state == 0){
titleText.setText("请选择统计的日期");
datePicker.setDateOrder(DatePicker.DateOrder.YMD);
}else if(state == 1){
titleText.setText("请选择统计的月份");
datePicker.setDateOrder(DatePicker.DateOrder.YM);
}else if(state == 2){
titleText.setText("请选择统计的年份");
}
ok_btn.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
int year= datePicker.getYear();
int month = datePicker.getMonth()-1;
int day = datePicker.getDayOfMonth();
showTimeCalender.set(Calendar.YEAR, year);
showTimeCalender.set(Calendar.MONTH, month);
showTimeCalender.set(Calendar.DAY_OF_MONTH, day);
reloadRecord();
cd.destroy();
}
});
cancel_btn.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
cd.destroy();
}
});
cd.setSize(MATCH_PARENT, MATCH_CONTENT);
cd.setContentCustomComponent(dl);
cd.setAlignment(LayoutAlignment.BOTTOM);
cd.show();
}
});
show_more_btn.setClickedListener(new Component.ClickedListener() {
@Override
public void onClick(Component component) {
CommonDialog cd = new CommonDialog(getContext());
cd.setCornerRadius(50);
DirectionalLayout dl = (DirectionalLayout) LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_selectviewmodel_dialog, null, false);
Image allRecordImage = (Image) dl.findComponentById(ResourceTable.Id_allrecord_btn);
Image yearRecordImage = (Image) dl.findComponentById(ResourceTable.Id_yearrecord_btn);
Image monthRecordImage = (Image) dl.findComponentById(ResourceTable.Id_monthrecord_btn);
Image dayRecordImage = (Image) dl.findComponentById(ResourceTable.Id_dayrecord_btn);
Image testImage = (Image) dl.findComponentById(ResourceTable.Id_test_btn);
Image todayImage = (Image) dl.findComponentById(ResourceTable.Id_today_btn);
Image addImage = (Image)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于鸿蒙开发的收支记账app源码(毕设项目) 基于鸿蒙开发的收支记账app源码(毕设项目).zip 基于鸿蒙开发的收支记账app源码(毕设项目).zip 【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。
资源推荐
资源详情
资源评论






















收起资源包目录





































































































共 110 条
- 1
- 2

onnx
- 粉丝: 1w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 三相光储并网逆变器:基于MPPT扰动观察法、双向BuckBoost与双闭环控制的仿真研究
- 电力系统中基于扩展卡尔曼滤波的配电网故障测距技术研究与实现 · 故障测距
- hyperf-PHP资源
- 光伏MPPT仿真中模糊控制的应用与优化
- COMSOL在压电-热释电纳米发电领域的应用:三维模型构建与文章复现
- NCRE-计算机二级资源
- onlineExam-毕业设计资源
- 基于java的多模式同时测试源码.zip
- Mathematical-modeling-information-美赛资源
- COMSOL导波检测技术在5mm厚15mm宽小宽度铝板上的Lamb波传播特性研究
- 基于自学习与老化控制策略的Matlab-Simulink建模与优化
- CSDN_ASSEMBLY_IMAGES-汇编语言资源
- 基于LabVIEW的OneNET云平台数据操作:高效写入与读取的实现技巧与案例分析
- 查看指定目录磁盘使用情况linux脚本.zip
- COMSOL水中放电等离子体仿真:全时间尺度衍生过程与粒子密度分布分析
- AJ-Captcha-Java资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
前往页