我有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);
}
}
}
提前致谢
答案 0 :(得分:0)
如果您的用户正在检查所有天数,那么取消选中“星期四”,例如您可以使用for循环来处理它。
for(int i = 0; i < days.size(); i++){
if(!days.get(i).isChecked){
all.uncheck();
}
}
干杯!
答案 1 :(得分:0)
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...
}