Pregunta

:) RadioButtons de mi radiogroup obtener dinámicamente creados a partir de un ArrayList (que reside en mi actividad principal) llenos de enlaces de esta manera:

ArrayList = { "hxxp: //helloworld.com", "hxxp: //helloworld2.net", ..., "hxxp: //whatever.com"}

entonces he una nueva clase llamados "enlaces" que es llamada desde un botón de menú en mi actividad principal, que fija un diseño agradable con un radiobubtton por enlace (en un ScrollView) y un "Go!" botón en la parte inferior de la página (disposición relativa).

Todo esto funciona muy bien excepto por una cosa. Si sale de la aplicación mediante el botón de retroceso y volver a entrar en la aplicación haciendo clic en el icono en el menú de Android, se llega a la actividad principal, a continuación, haga clic en el botón de "enlaces" en el menú y que se duplican cada vez. ??? al igual que:
Link 0
Link 1
Link 2
Enlaces 0 (de nuevo)
enlace 1 (de nuevo)
Link 2 (de nuevo)

Esto añade los enlaces a la parte inferior de cada vez que vuelva a la actividad "enlaces" de salir. ¿Hay alguna manera de que pueda llamar a un método para borrar todos los botones de radio generadas formulario de la última sesión en la actividad de los enlaces antes de ponerlos en el RadioGroup? He intentado cambiar mi onPause() a finish(); intenté liberar la memoria caché con RadioGroup.destroyDrawingCache(); nada parece hacerlo.

¿Fue útil?

Solución

En lugar de este enfoque de 'borrar todo' (que es, sin duda posible) Me gustaría probar algo diferente - lugar un punto de interrupción en el código que en primer lugar se rellena sus botones de opción y pulse el botón de retroceso, a continuación, volver a entrar en la aplicación, a continuación, de nuevo de nuevo, otra vez de nuevo en la aplicación, etc.

Si el punto de interrupción es golpeado cada vez que se cambia de nuevo en la aplicación, entonces no es su problema. Solucionarlo moviendo ese código desde donde se va a OnCreate por ejemplo, por lo que sólo se llama una vez durante la creación de actividad. Si eso no es factible, a continuación, utilizar alguna variable clase como 'booleano mRadioButtonsPopulated' que consigue comprueba justo antes del código población botones de radio, y obtiene el valor true después de la (primera) Población botón de radio sucedido.

Otros consejos

Puede quitarse los botones de radio que fueron creados dinámicamente utilizando la siguiente manera:

RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroupnew1);
rg.clearCheck();
rg.removeAllViews();

Lo tengo, supongo que el lugar de la memoria queda ArrayList allí incluso después de OnDestroy () fue llamado. Todo lo que hice para solucionar este problema fue llamada ".clear ();" en el ListArray justo después de crear instancias en la actividad principal de mi aplicación para Android. De esta manera cada vez que se abrió la aplicación [ArrayList] se crea una instancia luego se aclaró. Funciona como un encanto:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top