在我的应用程序中,我尝试创建一个具有多个复选框的数组。当我单击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);
}
}
});
}
您需要创建逻辑以检测复选框的单击时间,然后取消选中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;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句