Eu criei RadioGroup
e RadioButton
dinamicamente da seguinte maneira:
RadioGroup radioGroup = new RadioGroup(context);
RadioButton radioBtn1 = new RadioButton(context);
RadioButton radioBtn2 = new RadioButton(context);
RadioButton radioBtn3 = new RadioButton(context);
radioBtn1.setText("Less");
radioBtn2.setText("Normal");
radioBtn3.setText("More");
radioBtn2.setChecked(true);
radioGroup.addView(radioBtn1);
radioGroup.addView(radioBtn2);
radioGroup.addView(radioBtn3);
Aqui, a etapa radioBtn2.setChecked(true);
causa radioBtn2
sempre verificada. Isso significa que não consigo desmarcar radioBtn2
marcando outros dois botões de opção ( radioBtn1
, radioBtn3
). Quero fazer com que seja RadioGroup
possível verificar apenas um botão de opção de cada vez (agora pode verificar dois botões de opção por vez).
Como posso resolver este problema?
android
radio-button
radio-group
Sandy
fonte
fonte
Respostas:
você deve verificar o botão de opção no grupo de opções da seguinte maneira:
radiogroup.check(IdOfYourButton)
Claro que você primeiro precisa definir um ID nos botões de opção
EDIT: esqueci,
radioButton.getId()
funciona também, thx RameshEDIT2:
trabalha no radiogroup xml
fonte
RadioButton
e conhece o índice que pode usar ((RadioButton) radioGroup.getChildAt (INDEX)). setChecked (true);setChecked()
Uma forma seriaradiogroup.check(((RadioButton)radioGroup.getChildAt(INDEX)).getId())
ou algo parecidoradioGroup.Check(radioGroup.GetChildAt(0).Id);
para usuários do Xamarin.AndroidNo caso do atributo xml, é
android:checkedButton
necessário queid
o valorRadioButton
seja verificado.fonte
No arquivo XML, defina o
android:checkedButton
campo no seuRadioGroup
, com o ID do seu padrãoRadioButton
:fonte
fonte
fonte
setChecked()
depois que todos os botões de opção forem adicionados ao grupo de opções. Então,radioGroup.check(radioBtn2.getId())
não é necessário marcarHavia o mesmo problema no código do meu colega. Parece que o seu grupo de rádio não está definido corretamente com os botões de opção. É por isso que você pode selecionar vários botões de opção. Eu tentei muitas coisas, finalmente eu fiz um truque que está errado, na verdade, mas funciona bem.
Aqui, defino um loop for, que verifica os botões de opção disponíveis e desmarca todos, exceto o novo clique. tente.
fonte
Adicione
android:checked = "true"
sua activity.xmlfonte
É um bug do RadioGroup
radioBtn2 sem viewId e generateViewId está em onChildViewAdded ()
então, primeiro radioGroup.addView (radioBtn2), depois radioBtn2.setChecked (true);
Como isso:
fonte