[英]Checkbox selection issue with multiple selection
我有8个复选框,分别代表工作日,周日至周六,以及所有日子。 问题是,如果我选择全天,它将到来。 但是我检查了所有并取消选中了几天,这意味着它没有反映在我的结果中,结果整天都在这里,这是我的代码
public void onClick(View v) {
if (v == btnSave) {
days.clear();
if (all.isChecked()) {
days.add("Su");
days.add("Mo");
days.add("Tu");
days.add("We");
days.add("Th");
days.add("Fr");
days.add("Sa");
} else {
if (sun.isChecked()) {
days.add("Sun");
}
if (mon.isChecked()) {
days.add("Mon");
}
if (tue.isChecked()) {
days.add("Tue");
}
if (wed.isChecked()) {
days.add("Wed");
}
if (thur.isChecked()) {
days.add("Thu");
}
if (fri.isChecked()) {
days.add("Fri");
}
if (sat.isChecked()) {
days.add("Sat");
}
}
Log.d("my days are ", "size is " + days.size());
myPreference.setNumberOfPractiseDays("TOTAL_NUMBER_OF_DAYS",
days.size());
for (int i = 0; i < days.size(); i++) {
myPreference.setPractiseDays("DAYS" + i, days.get(i));
}
finish();
} else if (v == all) {
if (all.isChecked()) {
sun.setChecked(true);
mon.setChecked(true);
tue.setChecked(true);
wed.setChecked(true);
thur.setChecked(true);
fri.setChecked(true);
sat.setChecked(true);
} else {
sun.setChecked(false);
mon.setChecked(false);
tue.setChecked(false);
wed.setChecked(false);
thur.setChecked(false);
fri.setChecked(false);
sat.setChecked(false);
}
}
}
提前致谢
如果您的用户正在检查“全天”,则例如取消选中“星期四”,则可以使用for循环进行处理。
for(int i = 0; i < days.size(); i++){
if(!days.get(i).isChecked){
all.uncheck();
}
}
干杯!
if (v == btnSave) {
days.clear();
//modify starts
for(int i = 0; i < dayNums.size(); i++){
if(!dayNums.get(i).isChecked()){ // here dayNums is an array with values like ("sun", "mon")
all.setChecked(false);
break;
}
}
// modify ends
// rest of the codes...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.