J'ai créé un bouton radio dans le radiogroupe, mais lorsque j'essaie d'exécuter les applications, tous les boutons radio peuvent être sélectionnés à tout moment et comment définir un seul bouton radio à la fois?
J'utilise Fragment
RadioGroup radioGroup = (RadioGroup) rootView.findViewById(R.id.RGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// find which radio button is selected
if(checkedId == R.id.Abdominal) {
Toast.makeText(getActivity().getApplicationContext(), "choice: A",
Toast.LENGTH_SHORT).show();
} else if(checkedId == R.id.Arm) {
Toast.makeText(getActivity().getApplicationContext(), "choice: B",
Toast.LENGTH_SHORT).show();
} else if(checkedId == R.id.Back){
Toast.makeText(getActivity().getApplicationContext(), "choice: C",
Toast.LENGTH_SHORT).show();
} else if(checkedId == R.id.Chest){
Toast.makeText(getActivity().getApplicationContext(), "choice: D",
Toast.LENGTH_SHORT).show();
} else if(checkedId == R.id.Leg){
Toast.makeText(getActivity().getApplicationContext(), "choice: E",
Toast.LENGTH_SHORT).show();
} else if(checkedId == R.id.Shoulder){
Toast.makeText(getActivity().getApplicationContext(), "choice: F",
Toast.LENGTH_SHORT).show();
}
}
});
voici mon code xml pour RG et RB
<RadioGroup
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/RGroup">
<TableRow Android:weightSum="1">
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Abdominal"
Android:id="@+id/Abdominal"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Arm"
Android:id="@+id/Arm"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Back"
Android:id="@+id/Back" />
</TableRow>
<TableRow>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Chest"
Android:id="@+id/Chest"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Leg"
Android:id="@+id/Leg"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Shoulder"
Android:id="@+id/Shoulder"/>
</TableRow>
</RadioGroup>
MODIFIÉ 1 : Réponse: .__ Si vous ne voulez pas que le bouton radio soit sélectionné en une fois, n’utilisez pas Tablerow
Cela ne fonctionne pas à cause de TableRow dans RadioGroup. Tous les RadioButtons ne sont pas regroupés en raison de TableRow entre eux.
RadioButton devrait être l'enfant direct de RadioGroup, sinon le regroupement ne fonctionne pas.
Il suffit de changer votre code pour que cela fonctionne:
<RadioGroup
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/RGroup">
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Abdominal"
Android:id="@+id/Abdominal"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Arm"
Android:id="@+id/Arm"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Back"
Android:id="@+id/Back" />
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Chest"
Android:id="@+id/Chest"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Leg"
Android:id="@+id/Leg"/>
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Shoulder"
Android:id="@+id/Shoulder"/>
</RadioGroup>
J'espère que cela t'aides. :)
Manière simple. Cliquez sur le bouton radio. faire le code comme ci-dessous.
public void clearRadioChecked() {
rdopa.setChecked(false);
rdopb.setChecked(false);
rdopc.setChecked(false);
rdopd.setChecked(false);
}
si vous voulez sélectionner déposer, alors cliquez sur ci-dessous.
clearRadioChecked()
rdopa.setChecked(true);
<RadioGroup
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:paddingLeft="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:id="@+id/radioGroup">
<RadioButton
Android:layout_width="0dp"
Android:layout_weight="50"
Android:layout_height="wrap_content"
Android:text="Debit"
Android:id="@+id/rDebit"
Android:checked="false"
/>
<RadioButton
Android:layout_width="0dp"
Android:layout_weight="50"
Android:layout_height="wrap_content"
Android:text="Credit"
Android:id="@+id/rCredit"
Android:checked="false" />
</RadioGroup>
Et en fichier Java
RadioGroup radioGroup;
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
Et quand faire quelque chose
if (radioGroup.getCheckedRadioButtonId() == R.id.rCredit)
{
// do something
}
Vous pouvez utiliser l'attribut Android:checkedButton
sur RadioGroup , en fournissant la valeur id
du RadioButton que vous voulez vérifier initialement et en sélectionnant un autre RadioButton effacera la sélection précédente.
<RadioGroup
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:checkedButton="@+id/rbNo"
Android:orientation="horizontal">
<RadioButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginEnd="50dp"
Android:text="Yes" />
<RadioButton
Android:id="@+id/rbNo"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="No" />
</RadioGroup>