我有一个数量的动态创建复选框。
现在我只想选择其中任何一个。当我选择第二个时,第一个应该取消选择。
我不能使用无线电组。任何帮助
这是我的代码..我正在动态创建复选框
private void createRadioButton(){ cb = new CheckBox(fContext);
cb.setTag(id++);
cb.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
Log.i("comVisa","getPos =="+getPosition);
}
});
}
答案 0 :(得分:1)
使用单一选择复选框的一个非常简单的示例。
试试这个link
CheckBox myCheckBox[] = new CheckBox[noofCheckBox];
for (int i=0; i<noofCheckBox; i++) {
myCheckBox[i] = new myCheckBox(this);
myCheckBox[i].setId(i+1);
myCheckBox[i].setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int getPosition = (Integer) buttonView.getTag();
if(myCheckBox[i].getId() == getPosition){
myCheckBox[i].setChecked(true);
}else{
myCheckBox[i].setChecked(false)
}
}
});
}
答案 1 :(得分:1)
您可以选中保存最后一个复选框,并在选中其他类似
时取消选中它在公共区域定义此
HashMap<String, CompoundButton> hash = new HashMap<String, CompoundButton>();
然后编辑你的代码:
cb.setTag(id++);
cb.setOnCheckedChangeListener( new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//int getPosition = (Integer) buttonView.getTag();
if(isChecked){
if(hash.size()>0){
hash.get("1").setChecked(false);
}
hash.put("1", buttonView);
}else{
hash.clear();
}
Log.i("comVisa","getPos =="+getPosition);
}
});