web-dev-qa-db-fra.com

Comment définir un bouton radio dans Android

J'ai une application qui utilise des boutons radio. La valeur par défaut de ce bouton est définie dans le fichier main.xml, à savoir: 

Android:id="@+id/rb_sat1E"
Android:checked="true"

Dans le fichier Java, j'ai:

final RadioButton radio1 = (RadioButton)findViewById(R.id.rb_sat1E);

J'ai également créé un bouton "Réinitialiser" dans le fichier Java principal et peux utiliser le code suivant pour réinitialiser les informations de TextView, par exemple.

pos1_deg.setText("0.0");

Mais comment puis-je réinitialiser un bouton radio? J'aurais pensé que c'était quelque chose comme

radio1.setBoolean("TRUE");

Mais ça ne marche pas du tout.

Toute aide grandement appréciée. Merci.

49
Entropy1024

Pour utilisation par radioButton 

radio1.setChecked(true);

Cela n’a aucun sens d’avoir un seul RadioButton. Si vous en avez plus, vous devez décocher les autres par

radio2.setChecked(false); ...

Si votre paramètre est simplement activé/désactivé, utilisez CheckBox.

87
Zelimir

Si vous voulez le faire dans le code, vous pouvez appeler le membre du contrôle de RadioGroup:

radioGroup.check(R.id.radioButtonId);

Cela va cocher le bouton que vous spécifiez et décocher les autres.

88
gulchrider

Ou vous pouvez le faire dans le fichier XML:

Dans le RadioGroup using: Android:checkedButton="id_button_to_check"

ou dans le RadioButton : Android:checked="true"

29
Samoht

Juste pour clarifier ceci: si nous avons un RadioGroup avec plusieurs RadioButtons et devons en activer un par index, cela implique que: 

radioGroup.check(R.id.radioButtonId)

et 

radioGroup.getChildAt(index)`

Nous pouvons faire:

radioGroup.check(radioGroup.getChildAt(index).getId());
8
cvyryk

si vous avez créé le projet en XML et souhaitez afficher une des cases du groupe cochée lors du chargement de la page ci-dessous, des solutions peuvent vous aider

    <RadioGroup
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_below="@+id/txtLastNameSignUp"
        Android:layout_margin="20dp"
        Android:orientation="horizontal"
        Android:id="@+id/radioGroup">
<RadioButton
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:checked="true"
    Android:id="@+id/Male"
    Android:text="Male"/>
        <RadioButton
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:id="@+id/Female"
            Android:text="Female"/>
        </RadioGroup>
4
Nirmal Dhara

J'ai plusieurs boutons radio sans groupe et setChecked(true), mais setChecked(false) ne fonctionne pas Mais ce code fonctionne:

RadioButton switcher = (RadioButton) view.findViewById(R.id.active);
                        switcher.setOnClickListener(new RadioButton.OnClickListener(){
                            @Override
                            public void onClick(View v) {
                                if(((RadioButton)v).isSelected()){
                                    ((RadioButton)v).setChecked(false);
                                    ((RadioButton)v).setSelected(false);
                                } else {
                                    ((RadioButton)v).setChecked(true);
                                    ((RadioButton)v).setSelected(true);
                                }
                            }

                        });
1
Eugen

Plusieurs fois, si vos boutons radio appartiennent à un groupe radio, alors

radioButton.setChecked (true)

ne sélectionnera pas le bouton radio correctement. Donc, pour résoudre ce problème, essayez d’utiliser votre groupe radio.

radioGroup.check (R.id.radioButtonId)

0
anoopbryan2