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.
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.
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.
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"
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());
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>
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);
}
}
});
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)