bee*_*ear 1 checkbox android android-checkbox
我在一项活动中有 16 个复选框,用户必须从中选择 8 个复选框中的任意一个。
因此,最终用户将从其中的 16 个复选框中选择 2 个。
更新:复选框已经存在于 xml 布局文件中。所以,我确实可以访问他们的 ID
直到现在,我正在考虑实现一个简单的 onCheckedChange 侦听器,并在 switch case 块中选择 8 个复选框中的任意 1 个复选框并取消选择其余 7 个复选框。但这种方法极其痛苦。
此外,当我需要提取其中的哪个被选中时,这将是一团糟。
那么,我可以做这两件事的最简单而灵活的方法是什么?欢迎提出建议
谢谢
您可以通过将它们分组在一个数组中(以便于访问和处理)并为每个设置 a来设置状态,CheckBox一次只检查一个(类似于 a RadioGroup)OnClickListener:
CheckBox[] chkArray = new CheckBox[8];
chkArray[0] = (CheckBox) findViewById(R.id.cb1R1);
chkArray[0].setOnClickListener(mListener);
chkArray[1] = (CheckBox) findViewById(R.id.cb2R1); // what id do you have?
chkArray[1].setOnClickListener(mListener);
// so on for the rest of the 8 CheckBoxes
private OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
final int checkedId = v.getId();
for (int i = 0; i < chkArray.length; i++) {
final CheckBox current = chkArray[i];
if (current.getId() == checkedId) {
current.setChecked(true);
} else {
current.setChecked(false);
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4868 次 |
| 最近记录: |