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.zip
共109个文件
png:37个
xml:31个
java:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 180 浏览量
2024-02-07
11:58:49
上传
评论 1
收藏 2.2MB ZIP 举报
温馨提示
华为 鸿蒙系统 开发
资源推荐
资源详情
资源评论
收起资源包目录
基于鸿蒙开发的收支记账app.zip (109个子文件)
gradlew.bat 3KB
.gitignore 47B
.gitignore 21B
build.gradle 2KB
build.gradle 892B
settings.gradle 49B
gradlew 8KB
gradle-wrapper.jar 57KB
ViewByTimeSlice.java 23KB
PageProvider.java 15KB
BookSlice.java 14KB
AddBookSlice.java 7KB
DisplayFormat.java 6KB
StatisticsProvider.java 4KB
RecordBean.java 4KB
RecordProvider.java 3KB
IndexBean.java 1KB
MainAbility.java 693B
MainAbilitySlice.java 551B
ExampleOhosTest.java 418B
RecordDbStore.java 231B
MyApplication.java 214B
Const.java 161B
ExampleTest.java 131B
CateItemBean.java 70B
config.json 1KB
pattern.json 759B
float.json 713B
previewConfigV2.json 594B
phoneSettingConfig_MateX2.json 354B
phoneSettingConfig_P40.json 285B
string.json 279B
string.json 276B
string.json 275B
color.json 259B
project.cache.json 78B
entry.cache.json 22B
package.json 3B
bk2.png 1.43MB
bk1.png 450KB
cate.png 11KB
yifu.png 11KB
jingrong.png 10KB
shiping.png 10KB
qita.png 9KB
add.png 9KB
todayimage.png 9KB
nianai.png 9KB
renqing.png 8KB
icon_add.png 8KB
time.png 8KB
jiaotong.png 8KB
tongxun.png 8KB
test.png 7KB
suse.png 7KB
memo.png 7KB
icon.png 7KB
shouru.png 6KB
today.png 6KB
xuexi.png 6KB
yule.png 6KB
qidai.png 6KB
allrecord.png 6KB
addiamge.png 6KB
yiliao.png 5KB
gouwu.png 5KB
ok.png 5KB
right.png 5KB
back.png 4KB
yearrecord.png 4KB
monthrecord.png 4KB
selectbtn.png 4KB
sta.png 3KB
dayrecord.png 3KB
more.png 3KB
proguard-rules.pro 45B
gradle.properties 816B
gradle-wrapper.properties 194B
selectviewmodel_dialog.xml 6KB
showrecorddetail_layout.xml 5KB
booklayout.xml 5KB
viewbytime_layout.xml 5KB
indexrecord_layout.xml 3KB
addbooklayout.xml 3KB
addinputbooklayout.xml 3KB
addoutputbooklayout.xml 3KB
cateitem_dialog.xml 2KB
todayshowmore_dialog.xml 2KB
calender_dialog.xml 2KB
selecttime_dialog.xml 2KB
recorditemlayout.xml 2KB
jarRepositories.xml 1KB
button_blue.xml 916B
gradle.xml 873B
button_blue_pressed.xml 812B
button_blue_empty.xml 810B
ability_main.xml 583B
button_state_bg.xml 363B
background_page.xml 285B
playbtn.xml 230B
共 109 条
- 1
- 2
资源评论
- 2301_767608982024-05-17资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
博士僧小星
- 粉丝: 1922
- 资源: 5884
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功