Ich habe erstellt RadioGroup
und RadioButton
dynamisch , wie folgend:
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);
Hier Schritt radioBtn2.setChecked(true);
Ursachen radioBtn2
immer geprüft. Das heißt, ich kann das radioBtn2
Kontrollkästchen nicht deaktivieren, indem ich die beiden anderen Optionsfelder ( radioBtn1
, radioBtn3
) aktiviere . Ich möchte, dass RadioGroup
nur ein Optionsfeld gleichzeitig überprüft werden kann (jetzt können zwei Radiobutton gleichzeitig überprüft werden).
Wie kann ich dieses Problem lösen?
android
radio-button
radio-group
Sandig
quelle
quelle
Antworten:
Sie sollten den Radiobutton in der Radiogruppe folgendermaßen überprüfen:
radiogroup.check(IdOfYourButton)
Natürlich müssen Sie zuerst eine ID für Ihre Radiobuttons festlegen
EDIT: Ich habe vergessen,
radioButton.getId()
funktioniert auch, danke RameshEDIT2:
funktioniert in Radiogruppe XML
quelle
RadioButton
und den Index kennen, den Sie verwenden können ((RadioButton) radioGroup.getChildAt (INDEX)). setChecked (true);setChecked()
One Way wäreradiogroup.check(((RadioButton)radioGroup.getChildAt(INDEX)).getId())
oder so ähnlichradioGroup.Check(radioGroup.GetChildAt(0).Id);
für Xamarin.Android-BenutzerIm Fall für seine XML - Attribut ,
android:checkedButton
das des Takesid
von demRadioButton
überprüft werden.quelle
Legen Sie in der XML-Datei das
android:checkedButton
Feld in IhremRadioGroup
mit der ID Ihres Standardwerts festRadioButton
:quelle
quelle
quelle
setChecked()
nachdem alle Optionsfelder zur Optionsgruppe hinzugefügt wurden. DannradioGroup.check(radioBtn2.getId())
ist das nicht nötigEs gab das gleiche Problem im Code meines Kollegen. Dies klingt so, als ob Ihre Radiogruppe mit Ihren Optionsfeldern nicht richtig eingestellt ist. Aus diesem Grund können Sie die Optionsfelder mehrfach auswählen. Ich habe viele Dinge ausprobiert, schließlich habe ich einen Trick gemacht, der eigentlich falsch ist, aber gut funktioniert.
Hier setze ich eine for-Schleife, die nach den verfügbaren Optionsfeldern sucht und alle außer dem neu angeklickten abwählt. Versuch es.
quelle
Fügen Sie
android:checked = "true"
in Ihrer activity.xml hinzuquelle
Es ist ein Fehler von RadioGroup
radioBtn2 ohne viewId und generateViewId befindet sich in onChildViewAdded ()
also zuerst radioGroup.addView (radioBtn2), dann radioBtn2.setChecked (true);
So was:
quelle