【问题标题】:Deselect CheckboxAll when one of checkboxes is uncheck android当复选框之一取消选中android时取消选择CheckboxAll
【发布时间】:2014-09-14 18:10:50
【问题描述】:

在我的应用程序中,我尝试创建一个包含多个复选框的数组。当我单击 CheckBoxAll 选择所有复选框以及取消选中 CheckBoxAll 时取消选择所有复选框时,我的应用程序正常工作。但是,如果我在所有复选框中取消选择其中一个复选框已选中,CheckBoxAll 未取消选中..

这是我的数组

 ArrayList<CheckBox> boxes = new ArrayList<CheckBox>();

checkBoxAll = createCheckBox(R.id.checkBoxAll);
        boxes.add(checkBoxAll);
        checkBoxCompany = createCheckBox(R.id.checkBoxCompany);
        boxes.add(checkBoxCompany);
        checkBoxType = createCheckBox(R.id.checkBoxType);
        boxes.add(checkBoxType);
        checkBoxName = createCheckBox(R.id.checkBoxName);
        boxes.add(checkBoxName);
        checkBoxPhone = createCheckBox(R.id.checkBoxPhone);
        boxes.add(checkBoxPhone);
        checkBoxAddress = createCheckBox(R.id.checkBoxAddress);
        boxes.add(checkBoxAddress);
        checkBoxEmail = createCheckBox(R.id.checkBoxEmail);
        boxes.add(checkBoxEmail);
        checkBoxwebSite = createCheckBox(R.id.checkBox4WebSite);
        boxes.add(checkBoxwebSite);

这是我的功能

 public void checkAllListener() {
        checkBoxAll.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                for(CheckBox chk : boxes) {
                    chk.setChecked(isChecked);
                }
            }
        });
    }

【问题讨论】:

    标签: android xml checkbox


    【解决方案1】:

    您需要创建逻辑来检测复选框何时被单击并取消选中 checkBoxAll。您将需要一个侦听器来处理选中的任何复选框。

    public class checks extends Activity implements OnCheckedChangeListener{
        private ArrayList<CheckBox> boxes;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            boxes = new ArrayList<CheckBox>();
    
            checkBoxAll = createCheckBox(R.id.checkBoxAll);
            boxes.add(checkBoxAll);
            checkBoxCompany = createCheckBox(R.id.checkBoxCompany);
            boxes.add(checkBoxCompany);
            checkBoxType = createCheckBox(R.id.checkBoxType);
            boxes.add(checkBoxType);
            checkBoxName = createCheckBox(R.id.checkBoxName);
            boxes.add(checkBoxName);
            checkBoxPhone = createCheckBox(R.id.checkBoxPhone);
            boxes.add(checkBoxPhone);
            checkBoxAddress = createCheckBox(R.id.checkBoxAddress);
            boxes.add(checkBoxAddress);
            checkBoxEmail = createCheckBox(R.id.checkBoxEmail);
            boxes.add(checkBoxEmail);
            checkBoxwebSite = createCheckBox(R.id.checkBox4WebSite);
            boxes.add(checkBoxwebSite);   
    
            for(CheckBox check : boxes){
                check.setOnCheckedChangeListener(this); 
            }
        }
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            switch (buttonView.getId()) {
            case R.id.checkBoxAll:
                for(CheckBox chk : boxes) {
                    chk.setChecked(isChecked);
                }
                break;
    
            default:
                boxes.get(0).setChecked(false);
                break;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      相关资源
      最近更新 更多