android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标。

android软件简约记账app开发day10-主页面模块--头信息的展示,和之后功能完善的目标。

今天来写主界面头信息的展示,也就是将第一天的写的layout中的item_main_top展示到主界面中

找到第一天写的页面

 

 

在mainactivity类中设置变量

//头布局控件
View headerView;
TextView topOutTv, topInTv, topbudgetTv, topConTv;
ImageView topShowIv;

添加头页面

    //在主页面添加头页面
   private void addLVHeaderView() {
       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);
  }

展示完成

将部分数据转化为动态数据

在数据库中添加方法

/**
* 获取某一天的支出或者收入的总金额   kind:支出==0   收入===1
* */
public static float getSumMoneyOneDay(int year,int month,int day,int kind){
   float total = 0.0f;
   String sql = "select sum(money) from accounttb where year=? and month=? and day=? and kind=?";
   Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", day + "", kind + ""});
   // 遍历
   if (cursor.moveToFirst()) {
       float money = cursor.getFloat(cursor.getColumnIndexOrThrow("sum(money)"));
       total = money;
  }
   return total;
}
/**
* 获取某一月的支出或者收入的总金额   kind:支出==0   收入===1
* */
public static float getSumMoneyOneMonth(int year,int month,int kind){
   float total = 0.0f;
   String sql = "select sum(money) from accounttb where year=? and month=? and kind=?";
   Cursor cursor = db.rawQuery(sql, new String[]{year + "", month + "", kind + ""});
   // 遍历
   if (cursor.moveToFirst()) {
       float money = cursor.getFloat(cursor.getColumnIndexOrThrow("sum(money)"));
       total = money;
  }
   return total;
}

在mainactivity中调用方法

    // 当activity获取焦点时,会调用的方法
   @Override
   protected void onResume() {
       super.onResume();
       loadDBData();
       setTopTvShow();
  }
   /* 设置头布局当中文本内容的显示*/
   private void setTopTvShow() {
       //获取今日支出和收入总金额,显示在view当中
       float incomeOneDay = DBManager.getSumMoneyOneDay(year, month, day, 1);
       float outcomeOneDay = DBManager.getSumMoneyOneDay(year, month, day, 0);
       String infoOneDay = "今日支出 ¥"+outcomeOneDay+" 收入 ¥"+incomeOneDay;
       topConTv.setText(infoOneDay);
//       获取本月收入和支出总金额
       float incomeOneMonth = DBManager.getSumMoneyOneMonth(year, month, 1);
       float outcomeOneMonth = DBManager.getSumMoneyOneMonth(year, month, 0);
       topInTv.setText("¥"+incomeOneMonth);
       topOutTv.setText("¥"+outcomeOneMonth);
  }

完成完成

该app的开发第一阶段到这里就结束了,接下来,讲一些之后开发阶段的项目设计

在该界面的头布局中,最开始设计了几个可以点击的控件,分别实现响应的功能,在右侧的眼睛图标点击会将头布局的数据显示为密文,在下面还有一个预算,可以设置本月的预算金额,并显示本月预算剩余,在下面还有一个图表,点击可以通过可视化图标展示本月收支情况,该组件整体也可以点击,会显示本月收支情况。

 

 

在主页面右上角还有一个搜索按钮,可以根据输入信息进行备注搜索。

在右下角还有一个按钮,可以分类显示记账的信息。

 

 

posted @ 2022-01-26 20:16  open520  阅读(137)  评论(0)    收藏  举报