首页 > 解决方案 > 使用java在android studio中使用复选框求和值?

问题描述

在我的应用程序中,我使用检查框来计算总和值。如果“checkbox1.isChecked”我将值添加到所有数据值的总和。当 (!checkBox1.isChecked) 我不想添加时。1.)如果我做 checkBox1 和 checkBox2 我的 Sum = 300,但如果我取消选中 checkbox1 它显示我 0.0。(屏幕截图 1 和 2)

在此处输入图像描述在此处输入图像描述

2.)如果我首先检查了 checkBox1,而不是添加了 checkBox2,它会显示 checkBox2 的值。(屏幕截图 3 和 4)

在此处输入图像描述 在此处输入图像描述

这是我的代码?应该进行哪些更改才能使其正常工作(如果选中则添加,如果未选中则不添加)


float averageOfMondays = 200;
float averageOfTuesdays = 100;
float daysSum = 0;

  checkBox1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(checkBox1.isChecked()){
                    monday = true;
                    daysSum+=averageOfMondays;
                    averageCounter++;
                }else  {
                    monday = false;

                    if(averageCounter<=0){ averageCounter = 0; }else{averageCounter--;}
                }
            }
        });

        checkBox2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(checkBox2.isChecked()){
                    tuesday = true;
                    daysSum+=averageOfTuesdays;
                    averageCounter++;
                }else {
                    tuesday = false;
                    if(averageCounter<=0){ averageCounter = 0; }else{averageCounter--;}
                }
            }
        });
 
btnCheck.setOnClickListener(new View.OnClickListener() {            //button CHECK 
            @Override
            public void onClick(View v) {

                if(averageCounter == 0){
                    tvAverage.setText("Please choose at least 1 day");

                } else{
                    tvAverage.setText(String.valueOf(daysSum));
                    daysSum=0;
                }
            }
        });

标签: javaandroidandroid-studiocheckboxaverage

解决方案


float averageOfMondays = 200;
float averageOfTuesdays = 100;
float daysSum = 0;

checkBox1.setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View v) {
        if (checkBox1.isChecked()) {
            monday = true;
            daysSum += averageOfMondays;
            averageCounter++;
        } else {
            monday = false;
            averageCounter--;
            daySum -= averageOfMondays;
        }
    }
 });

checkBox2.setOnClickListener(new View.OnClickListener() {@Override
    public void onClick(View v) {
        if (checkBox2.isChecked()) {
            tuesday = true;
            daysSum += averageOfTuesdays;
            averageCounter++;
        } else {
            tuesday = false;
            averageCounter--;
            daySum -= averageOfTuesdays;
        }
    }
 });

btnCheck.setOnClickListener(new View.OnClickListener() { //button CHECK 
    @Override
    public void onClick(View v) {

        if (averageCounter == 0) {
            tvAverage.setText("Please choose at least 1 day");
        } else {
            tvAverage.setText(String.valueOf(daysSum));
        }
   }
});

这样您就可以拥有正确的功能。


推荐阅读