java - 使用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;
}
}
});
解决方案
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));
}
}
});
这样您就可以拥有正确的功能。
推荐阅读
- ruby - Cron 作业不适用于 shell 脚本或 ruby 脚本 mac os
- selenium - Selenium Java 代码与 Jmeter 集成
- c# - 令牌认证服务器在 .Net 中是如何工作的?
- c - 如何使用 SDL2 在 C 中分离窗口创建和绘图功能?
- twig - 是否可以将 {% %} 的 twig 语言格式替换为:{%- -%}?
- java - 为什么 HttpsURLConnection 在连接到 WiFi 热点时会引发 SSL 异常?
- javascript - 在 Choropleth 中突出显示状态
- python - 从 python 到 kivy 的引用出错了
- python - 如何解决错误“模块pygame没有属性显示”
- html - 如何使用 Bootstrap 在具有固定高度的 div 中居中图像?