7

ユーザーが質問をしたり、ラジオボタンを使用して複数のオプションを追加したりできるカスタマイズフォームをプログラムで設計しています。私はRadioGroupを取り、そこにラジオボタンを追加しています。しかし、選択中は、一度に1つのラジオボタンだけを選択したいです。プログラムで実装する方法。私を助けてください..

これが私のコードです

final RadioGroup radioGroup = new RadioGroup(getApplicationContext());
radioGroup.setId(1);
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                                LinearLayout.LayoutParams.FILL_PARENT,
                                LinearLayout.LayoutParams.WRAP_CONTENT);

RadioButton radioButtonView = new  RadioButton(getApplicationContext());
radioButtonView.setId(i++);
radioButtonView.setText(addnew);

radioGroup.addView(radioButtonView, p);
loption.addView(radioGroup, p);

前もって感謝します、

4

5 に答える 5

3
 @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        Log.d(TAG, "onCheckedChanged  " + buttonView.getId());
        mRadioGroup.clearCheck();
        if (isChecked) {
            mRadioGroup.check(buttonView.getId());
        }
    }
于 2015-10-30T08:03:57.330 に答える
2

RadioGroupfor everyを新しく作っているようですRadioButton

RadioButtonすべての新しいものを同じに追加する必要がありRadioGroupます。は、一度にRadioGroup1 つだけRadioButtonを選択できるようにします。

于 2014-02-18T11:49:39.563 に答える
0

ラジオ ボタンを直接チェックするのではなく、RadioGroup を使用してラジオ ボタンをチェックする必要があります。以下では、オプションのリストからラジオ グループを作成し、チェックするオプションのラジオ ボタン ID を取得し、ラジオ グループを作成した後に対応するボタンをチェックします。チェックされたオプションをインデックスで決定する場合も同様です。

int checkedId = -1; 

for(JsonElement option : options){

    RadioButton radioButton = new RadioButton(getContext());

    radioGroup.addView(radioButton);

    if(checkedOptionId.equals(id)){
        checkedId = radioButton.getId();
    }
}

radioGroup.check(checkedId);
于 2016-07-14T13:16:29.893 に答える