• 家庭记账本(六)主界面头布局


      将头布局在ListView中显示,也就是在ListView中添加一个头

    /*添加ListView头布局*/
        public void addListViewHeader() {
            headerView = getLayoutInflater().inflate(R.layout.item_mainlv_top, null);
            lv_today_info.addHeaderView(headerView);
            /*查找可用控件*/
            tv_top_out = findViewById(R.id.item_mainlv_top_out);
            tv_top_in = findViewById(R.id.item_mainlv_top_tv_in);
            tv_top_budget = findViewById(R.id.item_mainlv_top_tv_budget);
            tv_top_condition = findViewById(R.id.item_mainlv_top_tv_day);
            iv_show = findViewById(R.id.item_mainlv_top_iv_hide);
    
            headerView.setOnClickListener(this);
            iv_show.setOnClickListener(this);
            tv_top_budget.setOnClickListener(this);
        }

      

      那么头布局中的信息如何显示呢?为了能获取头部中的信息,我们需要填写两个数据库中的信息。

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

      将数据库中的信息显示出来

    /*设置顶部布局文本内容的显示*/
        public void setTopTVShow(){
            /*获取今日支出和收入总金额*/
            float income = DBManager.getSumMoneyOneDay(year, month, day, 1);
            float outcome = DBManager.getSumMoneyOneDay(year, month, day, 0);
    
            String infoOneday = "今日支出 ¥"+outcome+" 收入 ¥"+income;
            tv_top_condition.setText(infoOneday);
    
            /*获取本月支出和收入总金额*/
            float income2 = DBManager.getSumMoneyOneMonth(year, month, 1);
            float outcome2 = DBManager.getSumMoneyOneMonth(year, month, 0);
            tv_top_in.setText("+"+income2);
            tv_top_out.setText("-"+outcome2);
    
            /*设置显示预算剩余*/
            float budget = preferences.getFloat("bmoney", 0);
            tv_top_budget.setText(String.valueOf((budget-outcome2)));
    
    
        }

      我们如果希望可以设置预算就需要另写一个预算的对话框,写法和时间对话框基本一致。

      我们在之前看到ListView的头页面有一个眼睛,希望实现明文与密文的切换。

      boolean isShow = true;
    
        public void toggleShow() {
            if (isShow) {
                PasswordTransformationMethod instance1 = PasswordTransformationMethod.getInstance();
                tv_top_in.setTransformationMethod(instance1);
                tv_top_out.setTransformationMethod(instance1);
                tv_top_budget.setTransformationMethod(instance1);
                iv_show.setImageResource(R.mipmap.ic_hide);
                isShow = false;
            } else {
                HideReturnsTransformationMethod instance2 = HideReturnsTransformationMethod.getInstance();
                tv_top_in.setTransformationMethod(instance2);
                tv_top_out.setTransformationMethod(instance2);
                tv_top_budget.setTransformationMethod(instance2);
                iv_show.setImageResource(R.mipmap.ic_show);
                isShow = true;
            }
        }
  • 相关阅读:
    [奇葩问题] Error Domain=NSURLErrorDomain Code=1003
    [linux] vim在源代码中自动添加作者信息(转载)
    [shell] 循环判断输入值
    [redis] linux下主从篇(2)
    [shell] sed学习
    [linux] 查看网卡UUID
    [笔记] centos6.6编译安装httpd2.4.10
    [笔记] postgresql 流复制(streaming replication)
    ORA28000: the account is locked 查哪个具体ip地址造成
    网易客户端授权密码,errormsg='authentication failed (method LOGIN)' exitcode=EX_NOPERM
  • 原文地址:https://www.cnblogs.com/Gazikel/p/14347409.html
Copyright © 2020-2023  润新知