Java 复选框选择问题与多重选择

Java 复选框选择问题与多重选择,java,android,Java,Android,我有8个复选框,分别表示工作日、周日到周六,还有一个复选框表示所有日期。问题是,如果我选择所有的日子,它就要来了。但是我全部选中,有些天取消选中意味着它没有反映在我的结果中,结果保留了所有天这是我的代码 public void onClick(View v) { if (v == btnSave) { days.clear(); if (all.isChecked()) { days.add("Su

我有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);
            }

        }
    }
public void onClick(视图v){
如果(v==btnSave){
天;
如果(all.isChecked()){
天。添加(“Su”);
天。添加(“Mo”);
天。添加(“Tu”);
天。添加(“我们”);
天。添加(“Th”);
天。添加(“Fr”);
天。添加(“Sa”);
}否则{
if(sun.isChecked()){
天。添加(“太阳”);
}
if(mon.isChecked()){
天。添加(“周一”);
}
如果(星期二已检查()){
天。添加(“星期二”);
}
if(wed.isChecked()){
天。添加(“星期三”);
}
如果(星期四检查()){
天。添加(“Thu”);
}
if(fri.isChecked()){
天。添加(“星期五”);
}
如果(sat.isChecked()){
天。添加(“周六”);
}
}
Log.d(“我的天数是”,“大小是”+天.size());
myPreference.SetNumberOfPracticesDays(“总天数”),
天。大小();
对于(int i=0;i

提前感谢

如果您的用户每天都在检查,请取消选中“星期四”,例如,您可以使用for循环处理该问题

for(int i = 0; i < days.size(); i++){
   if(!days.get(i).isChecked){
      all.uncheck();
   }
}
for(int i=0;i
干杯

if(v==btnSave){
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...

}
天; //修改开始 对于(int i=0;i
您没有得到isChecked()结果或UI没有更改?因为如果任何复选框未选中,您没有取消选中
所有
。如果(!dayNums.get(i).isChecked)正在工作,我只能找到isempty….isChecked我找不到(!dayNums.get(i).isChecked)正在工作,我只能找到isempty….isChecked我找不到