Comment obtenir l’index sélectionné d’un RadioGroup dans Android

Existe-t-il un moyen facile d’obtenir l’index sélectionné d’un RadioGroup dans Android ou dois-je utiliser OnCheckedChangeListener pour écouter les modifications et disposer de quelque chose qui contient le dernier index sélectionné?

exemple xml:

       

si un utilisateur sélectionne l’ option 3 je veux obtenir l’index, 2.

Vous devriez pouvoir faire quelque chose comme ceci:

 int radioButtonID = radioButtonGroup.getCheckedRadioButtonId(); View radioButton = radioButtonGroup.findViewById(radioButtonID); int idx = radioButtonGroup.indexOfChild(radioButton); 

Si le groupe RadioGroup contient d’autres vues (comme un object TextView ), la méthode indexOfChild() renverra un index incorrect.

sélectionner le texte RadioButton sur RadioGroup

  RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx); Ssortingng selectedtext = r.getText().toSsortingng(); 

Cela devrait fonctionner,

 int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId())); 

Vous pouvez avoir une référence au groupe de radio et utiliser getCheckedRadioButtonId () pour obtenir l’identifiant du bouton radio vérifié. Jetez un oeil ici

 RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_group); 

Ensuite, quand vous avez besoin de l’option radio sélectionnée.

 int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); if (checkedRadioButtonId == -1) { // No item selected } else{ if (checkedRadioButtonId == R.id.radio_button1) { // Do something with the button } } 

essaye ça

  RadioGroup group= (RadioGroup) getView().findViewById(R.id.radioGroup); group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { View radioButton = radioGroup.findViewById(i); int index = radioGroup.indexOfChild(radioButton); } }); 

Vous pouvez utiliser:

 RadioButton rb = (RadioButton) findViewById(rg.getCheckedRadioButtonId()); 

Vous pouvez utiliser OnCheckedChangeListener ou utiliser getCheckedRadioButtonId ()

// utilise pour obtenir l’id de l’élément sélectionné

 int selectedID = myRadioGroup.getCheckedRadioButtonId(); 

// récupère la vue de l’élément sélectionné

 View selectedView = (View)findViewById( selectedID); 

Cela a parfaitement fonctionné pour moi de cette façon:

  RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radio_group); int radioButtonID = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = (RadioButton) radioGroup.findViewById(radioButtonID); Ssortingng selectedtext = (Ssortingng) radioButton.getText(); 

Tout ce dont vous avez besoin est de définir les valeurs d’abord sur votre RadioButton, par exemple:

 RadioButton radioButton = (RadioButton)findViewById(R.id.radioButton); radioButton.setId(1); //some int value 

et puis, chaque fois que ce radioButton spatial sera choisi, vous pouvez tirer sa valeur de l’ID que vous lui avez donné avec

 RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup); int whichIndex = radioGroup.getCheckedRadioButtonId(); //of course the radioButton //should be inside the "radioGroup" //in the XML 

À votre santé!

 radioSexGroup=(RadioGroup)findViewById(R.id.radioGroup); btnDisplay=(Button)findViewById(R.id.button); btnDisplay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int selectedId=radioSexGroup.getCheckedRadioButtonId(); radioSexButton=(RadioButton)findViewById(selectedId); Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show(); } }); 
  int index_selected = radio_grp.indexOfChild(radio_grp .findViewById(radio_grp.getCheckedRadioButtonId())); 

tu peux faire

 findViewById 

du groupe de radio.

Ici c’est échantillon:

 ((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true); 

utilisez simplement ceci:

  int index = 2; boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId();