0

動的に作成するチェックボックスがいくつかあります。

今、私はそれらのいずれかを1つだけ選択したいと思います。2番目のものを選択すると、最初のものの選択が解除されます。

ラジオグループが使えません。ヘルプ

これが私のコードです..チェックボックスを動的に作成しています

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

        }
    });


}
4

2 に答える 2

1

単一選択チェックボックスを使用する非常に簡単な例。
このリンクを試してください


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

        }
    });
    }
于 2013-03-12T11:44:50.710 に答える
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);

}
});
于 2013-03-12T12:37:14.920 に答える