【问题标题】:Sum value with checkboxes in android studio with java?使用java在android studio中使用复选框求和值?
【发布时间】:2021-02-03 03:24:38
【问题描述】:

在我的应用程序中,我使用复选框来计算总和值。如果“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;
                }
            }
        });

【问题讨论】:

    标签: java android android-studio checkbox average


    【解决方案1】:
    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));
            }
       }
    });
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多