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?

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.

  • Preparación del tipo de grupo de radio personalizado
  • ¿Posible que todos los botones de radio no estén marcados en una aplicación para Android?
  • android onCheckedChanged para el radiogrupo
  • Grupo de radio no está recibiendo el foco en Android
  • Diseño personalizado para RadioButton
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.