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的开发第一阶段到这里就结束了,接下来,讲一些之后开发阶段的项目设计

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

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

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

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

  1. android软件简约记账app开发day04-记账页面条目的代码书写

    android软件简约记账app开发day04-记账页面条目的代码书写 在前三天我们完成了基本的界面展示,从今天开始,我们进入到后台逻辑代码的编写中,今天开发记账条目的代码 我们在主页面点击记一笔图标 ...

  2. android软件简约记账app开发day01-今日收支明细的界面绘制

    android软件简约记账app开发day01-今日收支明细的界面绘制 导入素材 导入在阿里iconfront图标库下载的字体图标分为大小两种,分别导入到项目目录mipmap-hdpi和mipmap- ...

  3. android软件简约记账app开发day09-主页面模块,收支记账信息的展示

    android软件简约记账app开发day09-主页面模块,收支记账信息的展示 我们第一天已经绘制了记账条目的界面,也在主界面设置了LietView来展示记账条目,今天来实现记账后再主界面的展示效果 ...

  4. android软件简约记账app开发day08-时间对话框的书写+改bug,改bug

    android软件简约记账app开发day08-时间对话框的书写+改bug,改bug 绘制对话跨页面 在添加记账信息功能中,我提供了用户添加备注添加事件的功能,设计是点击时间会弹出一个时间对话框供用户 ...

  5. android软件简约记账app开发day07-备注界面完善

    android软件简约记账app开发day07-备注界面完善 ## 昨天我们已经绘制了备注页面,今天来用Java代码组装完善一下. 首先我们新建BeiZhuDialog类关联备注页面,并且实现点击接口 ...

  6. android软件简约记账app开发day06-将记账条目添加到数据库并且绘制备注页面

    android软件简约记账app开发day06-将记账条目添加到数据库并且绘制备注页面 首先写添加到数据库 在DBOpenHelper中添加创建记账表的语句 //创建记账表 sql = "c ...

  7. android软件简约记账app开发day05-记账页面条目代码优化和bug解决

    android软件简约记账app开发day05-记账页面条目代码优化和bug解决 今天还是因为该bug又极大的耽误了项目进程,该开发文档都要没有时间来写了. 先说bug吧,在昨天已经实现了页面图标的展 ...

  8. android软件简约记账app开发day03-自定义键盘的书写

    android软件简约记账app开发day03-自定义键盘的书写 我们在fragment界面使用了自定义的keybroad键盘,所以今天我们来书写自定义的键盘代码 新建util包,新建keyboard ...

  9. android软件简约记账app开发day02-收入支出明细页面绘制

    android软件简约记账app开发day02-收入支出明细页面绘制 效果图 列表界面绘制 新建layout文件-item_mainlv.xml大体使用绝对布局,嵌套相对布局,嵌套文本内容实现 < ...

随机推荐

  1. CentOS Stream 8 安装 Zabbix6.0 -- LNMP环境(nginx-1.20,mariadb-10.6,php-7.4)

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 zabbix6.0 LTS版本出来了,前段时间刚安装了5.4,今天打算在虚拟机上安装6.0测试,安装6.0的要求php版本不低于7.2,mariad ...

  2. MySQL — 数据查询语言

    目录 1.基础查询 2.条件查询 3.分组查询 4.排序查询 5.分页查询 6.多表查询 6.1.连接查询 6.1.1.内连接 6.1.2.外连接 6.1.3.自连接 6.1.4.联合查询 6.2.子 ...

  3. J20航模遥控器开源项目系列教程(七)PPM输出 | 关于按键版本和旋转编码器版本的兼容说明、布局建议 | 关于MINI版PCB的兼容说明

    我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...

  4. 解决IDEA的maven项目 添加依赖后Reimport无反应

    解决IDEA的maven项目 添加依赖后Reimport无反应   如果重启项目和编译器都不管用的话, 找到项目在硬盘上的位置  把该项目的.idea文件夹和xxx.iml文件删除    打开IDEA ...

  5. IDEA terminal无法从vim的编辑模式转换为命令模式

    Git 修改最后一次的commit历史记录:https://www.baidu.com/link?url=2WF8yFd0iBuVmXLWfutmSoXa12K9D143e_B0A3PTYYHEP9r ...

  6. 传染病模型(SIR模型)

  7. stm32CubeMX+keil5好用还是stm32CubeID好用

    cubemx是图形配置软件, 可以节省往常配置IO口的时间, cubemx主推hal库, 它是生成keil工程的工具 cubemx生成的工程可以用keilv5编程软件来编辑... 用Cube mx定义 ...

  8. ESD@TVS选型

    一.工作原理 ESD ESD静电保护元件,又称静电抑制二极管.ESD是多个TVS晶粒或二极管采用不同的布局做成具有特定功能的多路或单路ESD保护器件,主要应用于各类通信接口静电保护,如USB.HDMI ...

  9. PC端操作系统、移动端操作系统、嵌入式操作系统

    左侧部分已是历史的操作系统,右侧的还是活跃的操作系统.安卓系统Android 是Google开发的基于Linux平台的开源手机操作系统.它包括操作系统.用户界面和应用程序-- 移动电话工作所需的全部软 ...

  10. centos下用ffmpeg推流宇视科技摄像头rtsp流到前端播放(无flash)

    严禁垃圾中文技术网站复制粘贴 流程:安装SRS服务接收ffmpeg的推流,SRS会提供一个flv的播放地址,前端通过fls.js播放即可,无需flash. 1.安装ffmpeg 提供两个版本,都能推流 ...