Cómo configurar OnClickListener en un RadioButton en Android?
Tengo dos RadioButton
s dentro de un RadioGroup
. Quiero establecer OnClickListener
en los RadioButton
s. Dependiendo de qué RadioButton
se hace clic, quiero cambiar el texto de un EditText
. ¿Cómo puedo conseguir esto?
- RadioGroup llama a onCheckChanged () tres veces
- Cómo hacer RadioGroup botones de radio con imágenes en Android ... ¿Cómo?
- ¿Cómo comprobar si un radiobutton está marcado en un radiogroup en Android?
- RadioGroup con dos columnas que tienen diez RadioButtons
- Cómo configurar el botón de radio marcado como predeterminado en radiogroup con Android
- Radiogrupo Android, divisor entre los botones de radio
- Comprobación del campo vacío de RadioGroup mediante setError en Android
- RadioButton con vista personalizada de Android
- RadioGroup extendiendo RelativeLayout?
- Sólo un botón de radio seleccionado a la vez
- RadioButtons con TextView en RadioGroup
- grupo de radio setOnCheckedChangeListener
- Cómo igualar espacio hacia fuera radiobuttons en Android?
Creo que una mejor manera es usar RadioGroup
y establecer el oyente en esto para cambiar y actualizar la View
consecuencia (le ahorra tener 2 o 3 o 4 etc oyentes).
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId is the RadioButton selected } });
Espero que esto te ayudará…
RadioButton rb = (RadioButton) findViewById(R.id.yourFirstRadioButton); rb.setOnClickListener(first_radio_listener);
y
OnClickListener first_radio_listener = new OnClickListener (){ public void onClick(View v) { //Your Implementaions... } };
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // checkedId is the RadioButton selected RadioButton rb=(RadioButton)findViewById(checkedId); textViewChoice.setText("You Selected "+rb.getText()); //Toast.makeText(getApplicationContext(), rb.getText(), Toast.LENGTH_SHORT).show(); } });
La pregunta era sobre Detectar qué botón de radio se hace clic, así es como puede obtener qué botón se hace clic
final RadioGroup radio = (RadioGroup) dialog.findViewById(R.id.radioGroup1); radio.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { View radioButton = radio.findViewById(checkedId); int index = radio.indexOfChild(radioButton); // Add logic here switch (index) { case 0: // first button Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show(); break; case 1: // secondbutton Toast.makeText(getApplicationContext(), "Selected button number " + index, 500).show(); break; } } });
También puede agregar el listener del diseño XML: android:onClick="onRadioButtonClicked"
en la etiqueta <RadioButton/>
.
<RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/pirates" android:onClick="onRadioButtonClicked"/>
Vea Android Developer SDK- Botones de radio para obtener más detalles.
Sólo en caso de que alguien estaba luchando con la respuesta aceptada:
Hay diferentes OnCheckedChangeListener-Interfaces. He añadido a la primera para ver si un CheckBox se ha cambiado.
import android.widget.CompoundButton.OnCheckedChangeListener;
Vs
import android.widget.RadioGroup.OnCheckedChangeListener;
Al agregar el fragmento de Ricky tuve errores:
El método setOnCheckedChangeListener (RadioGroup.OnCheckedChangeListener) en el tipo RadioGroup no es aplicable para los argumentos (new CompoundButton.OnCheckedChangeListener () {})
Se puede arreglar con la respuesta de Ali:
new RadioGroup.OnCheckedChangeListener()
Dado que esta pregunta no es específica de Java, me gustaría añadir cómo se puede hacer en Kotlin :
radio_group_id.setOnCheckedChangeListener({ radioGroup, optionId -> { when (optionId) { R.id.radio_button_1 -> { // do something when radio button 1 is selected } // add more cases here to handle other buttons in the RadioGroup } } })
Aquí radio_group_id
es el android:id
asignado android:id
del RadioGroup en cuestión. Para usarlo de esta manera necesitará importar kotlinx.android.synthetic.main.your_layout_name.*
En el archivo Kotlin de su actividad. También tenga en cuenta que en caso de que el parámetro lambda del grupo de radioGroup
no esté utilizado, se puede reemplazar con _
(un subrayado) desde Kotlin 1.1.
- Android / Java – Fecha Diferencia en días
- El logcat de Android está inundado con "W / API de Google Maps para Android: GLHudOverlay obsoleto; Draw (): no-op "