cómo quitar los elementos del botón de radio programmaticaly

Tengo un problema. En el diseño de xml tengo RadioGroup, Button1, Button2. Cuando el usuario hace clic en button1, varios botones de radio se crean mediante programación en RadioGroup (la cantidad total de botones de radio puede ser diferente (pocet = cuenta de los botones de radio que se crearán).

final RadioButton[] rb = new RadioButton[pocet]; RadioGroup rg = (RadioGroup) findViewById(R.id.MyRadioGroup); radiobuttonCount++; for(int i=0; i<pocet; i++){ rb[i] = new RadioButton(this); rb[i].setText("Radio Button " + radiobuttonCount); rb[i].setId(radiobuttonCount+i); rb[i].setBackgroundResource(R.drawable.button_green); rg.addView(rb[i]); } 

Lo que intento hacer es esto: Cuando el usuario selecciona el elemento xy de RadioGroup, pasaré el valor seleccionado a textview y quitaré todos los radioButtons.

Para eliminar el propósito que uso:

  public void onCheckedChanged(RadioGroup rGroup, int checkedId) { RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(checkedId); boolean isChecked = checkedRadioButton.isChecked(); if (isChecked) { RadioGroup rg = (RadioGroup) findViewById(R.id.MyRadioGroup); for (int i=0; i< rg.getChildCount(); i++){ rg.removeViewAt(i); } } 

El problema es que a veces esto funciona bien, pero a veces el primer botón de radio permanece sin borrar. ¿Qué hago mal?

PD Posteriormente quiero agregar button2 que alimentará radiogroup con diferentes elementos y diferentes botones de radio cantidad. Es por eso que necesito eliminar todos los botones de radio después de que el usuario haga la selección.

EDIT: Los chicos lo tienen para los que podrían estar interesados ​​aquí es la solución:

  public void onCheckedChanged(RadioGroup rGroup, int checkedId) { RadioButton checkedRadioButton = (RadioButton)rGroup.findViewById(checkedId); boolean isChecked = checkedRadioButton.isChecked(); if (isChecked) { RadioGroup rg = (RadioGroup) findViewById(R.id.MojRadioGroup); int j=rg.getChildCount(); for (int i=0; i< j; i++){ rg.removeViewAt(0); } } 

Mi primera suposición es que esta parte del código es mala:

  for (int i=0; i< rg.getChildCount(); i++){ rg.removeViewAt(i); } 

no se puede ejecutar sobre los niños de una vista mientras se quita el niño al mismo tiempo (rg.getChildCount () cambiará durante la ejecución)

Su realmente fácil, usted acaba de hacer esto:

 rg.removeAllViews(); 

porque trabajé con el bucle for pero no eliminó todos los RadioButtons. que te diviertas 🙂

  • API de geocodificación de Android BroadcastReceiver no activado
  • android.hardware.action.NEW_PICTURE se dispara dos veces
  • Android - cómo anular el registro de un receptor creado en el manifiesto?
  • El receptor de difusión funciona de forma diferente en diferentes versiones de Android (4.1.1 y 4.2.2)
  • ¿Cuándo se transmite la intención ACTION_DEVICE_STORAGE_LOW?
  • ANR Difusión de Intención {act = android.intent.action.SCREEN_OFF flg = 0x50000010}
  • ¿Es esto posible comprobar si una difusión fue enviada en modo pegajoso? ¿Puede ser abortado / removido?
  • Tratando de tener un Receptor Broadcast sin filtro
  • Cómo cancelar el registro de BroadcastReceiver
  • Iniciar la aplicación sin actividad, mi receptor de difusión no funciona
  • BroadcastReceiver en android.net.conn.CONNECTIVITY_CHANGE llamado varias veces
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.