如何使用android中另一个复选框的标记值取消选中复选框

时间:2013-03-12 11:41:57

标签: android checkbox

我有一个数量的动态创建复选框。

现在我只想选择其中任何一个。当我选择第二个时,第一个应该取消选择。

我不能使用无线电组。任何帮助

这是我的代码..我正在动态创建复选框

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);

        }
    });


}

2 个答案:

答案 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);

}
});