Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Grupo de radio onclick evento no disparar, ¿cómo puedo saber cuál es seleccionado?

Estoy usando el grupo de radio, pero el evento RadioGroup no está disparando y el método getCheckedRadiobuttonID() devuelve null . Aquí está el elemento en mi diseño:

  <RadioGroup android:id="@+id/RG1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:onClick="onRGClick" > 

Método

 public void onRGClick(View v) { Toast.makeText(this, "Test ", 1000).show(); } 

  • Varios botones de radio de la fila en android?
  • El niño especificado ya tiene un padre
  • Android problema RadioButton en android 4
  • Android: Cómo cambiar el tamaño del RadioButton
  • Android: ¿Dónde encontrar el RadioButton Drawable?
  • ANDROID - ExpandableListView
  • Aplicación de un tema a los botones de radio dinámicos en Android
  • ¿Cómo comprobar si "Radiobutton" está marcado?
  • 4 Solutions collect form web for “Grupo de radio onclick evento no disparar, ¿cómo puedo saber cuál es seleccionado?”

    Este problema se puede solucionar utilizando las siguientes

     RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroup1); rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch(checkedId) { case R.id.radio0: // TODO Something break; case R.id.radio1: // TODO Something break; case R.id.radio2: // TODO Something break; } } }); 

    Alternativamente

    Puede utilizar IDs personalizados en lugar de uno predeterminado

      RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroup1); rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch(checkedId) { case R.id.male: // TODO Something break; case R.id.female: // TODO Something break; case R.id.other: // TODO Something break; } } }); 

    En realidad, creo que no es necesario agregar android:clickable="true" o haga clic en escuchar. Puede declarar RadioGroup.OnCheckedChangeListener que escuchará el cambio de la selección. Por favor, vea este hilo, por ejemplo, cómo puede usarlo.

    EDIT: Hice algunos cambios en su código y su funcionamiento para mí. OnClick funciona para todas las vistas. Aquí en tu código, el ancho de Rgroup es wrap_content, así que si has puesto RadioButtons dentro del RG (que se superpondrá por completo al RG), tus clics serán consumidos por los RadioButtons (y no el Rgroup). Hice la anchura del Rgroup a fill_parent y el tecleo estaba consiguiendo ejecutado. Aquí está mi muestra para que pueda probarlo.

      <RadioGroup android:onClick="onRGClick" ndroid:text="RadioButton" android:id="@+id/radioGroup1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <RadioButton android:text="RadioButton" android:id="@+id/radioButton2" android:layout_width="wrap_content" android:layout_height="wrap_content"></RadioButton> </RadioGroup> 

    Y aquí está la Actividad:

     public class Hello extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onRGClick(View v){ Toast.makeText(this, "Test ", Toast.LENGTH_LONG).show(); } 

    Simplemente haga clic en cualquier lugar a la derecha del RadioButton y verá el Toast. Aunque para fines generales, OnCheckedChangeListener es más útil. Espero que esto te ayude.

    La otra manera es asignar su método a la propiedad onClick de cada RadioButton . A continuación, compruebe el ID de la vista. Por ejemplo,

     public void onRGClick(View v) { int id = view.getId(); if (id == R.id.radioButtonId) { //Do something } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.