Question

:) RadioButtons Mon radiogroup se dynamiquement créés à partir d'un ArrayList (qui se trouve dans mon activité principale) plein de liens comme ceci:

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

alors j'ai une nouvelle classe appelée « liens » qui est appelé à partir d'un bouton de menu dans mon activité principale qui définit une disposition agréable avec un radiobubtton par lien (dans un scrollview) et un « go! » bouton en bas de la page (disposition relative).

Tout cela fonctionne très bien sauf pour une chose. Si vous quittez l'application à l'aide du bouton de retour, et revenir en arrière dans l'application en cliquant sur l'icône dans le menu Android, vous obtenez à l'activité principale, puis cliquez sur le bouton « liens » dans le menu et ils sont doublés à chaque fois. ??? ainsi:
lien 0
lien 1
lien 2
lien 0 (nouveau)
lien 1 (nouveau)
lien 2 (nouveau)

Ceci ajoute les liens vers le bas chaque fois que vous revenez à l'activité « liens » de quitter. Est-il possible que je peux appeler une méthode pour effacer tous les boutons radio générés sous forme de la dernière session de l'activité des liens avant de les mettre dans le RadioGroup? J'ai essayé de changer mon onPause() à finish(); j'ai essayé de libérer le cache avec rien RadioGroup.destroyDrawingCache(); semble le faire.

Était-ce utile?

La solution

Au lieu de cette approche « tout supprimer » (ce qui est sûrement possible) Je voudrais essayer quelque chose de différent - placer un point d'arrêt dans le code qui renseigne d'abord vos boutons radio et appuyez sur le bouton de retour, puis revenir en arrière dans l'application, puis de nouveau retour, encore une fois de retour dans l'application, etc.

Si le point d'arrêt est frappé chaque fois que vous revenez dans l'application, puis il y a votre problème. Résoudre le problème en déplaçant ce code là où il est à OnCreate par exemple, il est donc appelée une seule fois au moment de la création d'activité. Si ce n'est pas faisable, utilisez une variable de classe comme « booléenne mRadioButtonsPopulated » qui est vérifié juste avant les boutons radio Code de la population, et obtient la valeur true après que le bouton radio (première) population est passé.

Autres conseils

Vous pouvez supprimer vos boutons radio qui ont été créés dynamiquement en utilisant comme ceci:

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

Je l'ai, je suppose que la place dans la mémoire gauche ArrayList là, même après OnDestroy () a été appelé. Tout ce que je l'ai fait pour résoudre ce problème était appelée « .clear (); » à droite ListArray après instanciation dans la principale activité de mon application Android. De cette façon, chaque fois que l'application est ouverte [le arraylist] s'instancié ensuite effacé. Fonctionne comme un charme:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top