我正在动态创建一些复选框。我想一次只检查一个复选框。我已经使用setChecked(false)方法实现了这一点。它运行正常,问题是当我取消选中第一个复选框并单击第二个时,然后在第二次检查它。我想要它要在第一时间检查。
我用过的代码 -
cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked)
{
Log.e("isChecked",""+isChecked);
if(isChecked==true)
{
count++;
sendData(j);
if(count>1)
{
//cb[i].setChecked(false);
buttonView.setChecked(false);
count=0;
}
}
};
答案 0 :(得分:0)
删除..
if(isChecked==true)
在此之后,我认为它将按照您的要求运作......
答案 1 :(得分:0)
您需要根据count
和check
点击次数使用uncheck
变量 -
试试这个 -
int i;
int count = 0;
for (i = 0; i < 10; i++) {
CheckBox cb = new CheckBox(this);
cb.setTag(Integer.valueOf(i));
cb.setText("CheckBox " + i);
cb.setChecked(false);
cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.e("isChecked",""+isChecked);
if (isChecked) {
count++;
} else {
count--;
}
if (count > 1) {
buttonView.setChecked(false);
count--;
}
}
});
}
答案 2 :(得分:0)
@neha试试这个...
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if(isChecked)
{
if(count==0)
{
count++;
Toast.makeText(MainActivity.this, "count="+count, 0).show();
return;
}
buttonView.setChecked(false);
}
else
{
count--;
Toast.makeText(MainActivity.this, "count="+count, 0).show();
return;
}
}