studio sirve radiogroup radiobutton que para agrupar activar java android xml radio-group

java - sirve - Cómo obtener el índice seleccionado de un RadioGroup en Android



radiogroup android (13)

// usar para obtener la identificación del elemento seleccionado

int selectedID = myRadioGroup.getCheckedRadioButtonId();

// obtener la vista del elemento seleccionado

View selectedView = (View)findViewById( selectedID);

¿Hay una forma fácil de obtener el índice seleccionado de un RadioGroup en Android o tengo que usar OnCheckedChangeListener para escuchar los cambios y tener algo que contenga el último índice seleccionado?

ejemplo xml:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio1" android:text="option 1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio2" android:text="option 2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio3" android:text="option 3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio4" android:text="option 4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio5" android:text="option 5" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup>

si un usuario selecciona la option 3 , quiero obtener el índice, 2.


Deberías poder hacer algo como esto:

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

Si RadioGroup contiene otras vistas (como una vista de TextView ), el método indexOfChild() devolverá el índice incorrecto.

para ser seleccionado RadioButton Text on RadioGroup

RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx); String selectedtext = r.getText().toString();


Esto debería funcionar,

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


Funcionó perfectamente para mí de esta manera:

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


Puede tener una referencia al grupo de radio y usar getCheckedRadioButtonId () para obtener el id del botón de radio verificado. Echa un vistazo here

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

Luego, cuando necesite obtener la opción de radio seleccionada.

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


Puede usar OnCheckedChangeListener o puede usar here


Puedes usar:

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


Todo lo que necesita es establecer valores primero en su RadioButton, por ejemplo:

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

y cada vez que se elija este radioButton espacial, puedes obtener su valor por el ID que le diste

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

¡Aclamaciones!


prueba esto

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); } });


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


solo usa esto:

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


tu puedes hacer

findViewById

del grupo de radio

Aquí está la muestra:

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


int index_selected = radio_grp.indexOfChild(radio_grp .findViewById(radio_grp.getCheckedRadioButtonId()));