68 votes

RadioGroup : Comment vérifier par programmation

Je crée un RadioGroup à partir de XML

     <RadioGroup android:id="@+id/option" 
        android:layout_width="match_parent"
        android:orientation="horizontal" 
        android:checkedButton="@+id/block_scenario_off"
        android:layout_height="wrap_content">
        <RadioButton 
            android:layout_width="0dip"
            android:layout_weight="1" 
            android:text="@string/option1" 
            android:layout_height="wrap_content" 
            android:id="@+id/option1"
            android:layout_gravity="center|left" 
            android:onClick="@string/on_click"/>
        <RadioButton 
            android:layout_width="0dip"
            android:layout_weight="1" 
            android:text="@string/option2" 
            android:onClick="@string/on_click"
            android:layout_height="wrap_content"
            android:layout_gravity="center" 
            android:id="@+id/option2"/>
        <RadioButton 
            android:layout_width="0dip"
            android:layout_weight="1" 
            android:text="@string/option3"
            android:onClick="@string/on_click" 
            android:layout_height="wrap_content"
            android:layout_gravity="center|right" 
            android:id="@+id/option3" />
    </RadioGroup>

Dans le code Java, je vérifie par programme le premier sur la création d'activité (onCreate()) comme suit :

     mOption = (RadioGroup) findViewById(R.id.option);
    mOption.check(R.id.option1);

Mais lorsque l'activité est affichée, aucun bouton radio n'est coché. De l'aide?

85voto

blackbelt Points 45840

Dans votre mise en page, vous pouvez ajouter android:checked="true" à CheckBox vous souhaitez sélectionner.

Ou par programmation, vous pouvez utiliser la méthode setChecked définie dans l'interface vérifiable :

RadioButton b = (RadioButton) findViewById(R.id.option1); b.setChecked(true);

40voto

Shash Points 699

essaye ça si vous souhaitez que votre bouton radio soit vérifié en fonction de la valeur d'une variable, par exemple "genderStr", vous pouvez utiliser l'extrait de code suivant

     if(genderStr.equals("Male"))
       genderRG.check(R.id.maleRB);
    else 
       genderRG.check(R.id.femaleRB);

27voto

vik Points 324

Vous devrez peut-être déclarer les boutons radio dans la méthode onCreate de votre code et les utiliser.

 RadioButton rb1 = (RadioButton) findViewById(R.id.option1);
rb1.setChecked(true);

27voto

AndrewBloom Points 71

Fais attention! vérifier le bouton radio avec setChecked() ne change pas l'état à l'intérieur du RadioGroup. Par exemple, cette méthode du radioGroup renverra un résultat erroné : getCheckedRadioButtonId() .

Vérifiez toujours le radioGroup avec

 mOption.check(R.id.option1);

tu as été prévenu ;)

24voto

Seref Bulbul Points 791

J'utilise ce morceau de code lorsque je travaille avec des index pour le groupe radio :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X