2010-10-27 11 views
22

Si fijo un botón de opción para ser seleccionados en la primera vez, funciona bien. Pero si lo desactivo llamando al ((RadioButton) findViewById (R.id.ID)). SetChecked (false); luego, más tarde, incluso si trato de hacerlo seleccionado llamando a setChecked (verdadero) no funcionará a menos que el usuario lo seleccione de la pantalla.Android RadioButton no posible remover usando el método setChecked (falso)

¿Alguien ha encontrado esto? o solo soy yo?

 if(Val != null){ 
     if(((RadioButton) findViewById(R.id.ID1)).getText().toString().trim().equals(Val)) 
     ((RadioButton) findViewById(R.id.ID1)).setChecked(true); 
     else if(((RadioButton) findViewById(R.id.ID2)).getText().toString().trim().equals(Val)) 
     ((RadioButton) findViewById(R.id.ID2)).setChecked(true); 
     } 
     else { 
      ((RadioButton) findViewById(R.id.ID1)).setChecked(false); 
      ((RadioButton) findViewById(R.id.ID2)).setChecked(false); 
     } 

Si la parte else se ejecuta al menos una vez y luego todo se desordenar. Cuando paso por mi depurador, puedo ver que la ejecución va en la ruta correcta y establecerlo en verdadero. Se está ejecutando solo una vez, lo he comprobado. Y no lo estoy reiniciando a falso en ninguna otra parte del código.

+0

¿Podríamos ver su código fuente? – ykatchou

+0

Probé este android: saveEnabled = "false", después de ir a http://groups.google.com/group/android-developers/browse_thread/thread/8ad42efded222543, pero eso no me ayudó. Wow al menos no estoy solo ... – franklins

+1

tienen el mismo problema y mientras mi diseño es imagen - texto - Verificar imagen - texto - Comprobar no puedo hacer sólo un RadioGroup ... i descubrí que es un 'error' cuando no puedo configurar la radio con setChecked (falso) lo que el desarrollador de android debe hacer. Gracias por su información, será probarlo ... –

Respuesta

48

Encontré la solución.

No es posible desactivar un botón de radio en particular. Solo puedes configurar el otro elemento como verdadero.

Así que para borrar todos los elementos seleccionados, se debe llamar al método clearcheck() en el RadioGroup.

Así que mi parte lo demás es

 else { 
      ((RadioGroup) findViewById(R.id.ID0)).clearCheck(); 
     } 
+0

¡Exactamente lo que necesitaba! Se pone muy sucio con los botones de radio a veces. ¡Gracias! –

+0

O en mi caso, se hizo más claro cuando me quité RadioGroup y jugué con dos RadioButtons. – samutamm

+0

Esto resolvió mi problema. Estaba tratando de volver a verificar el botón de radio ya verificado que aparece como desactivado en la interfaz de usuario. – W00di

2

Tome un botón de radio invisible y comprobarlo. Todos los demás botones de opción del grupo se desmarcarán automáticamente.

Cuestiones relacionadas