6
votes

Supprimer des boutons radio créés de manière dynamique d'un radiogroupe dans Android

:) Les radiobuttons de mon radiogroupe sont créées dynamiquement à partir d'une arrachelist (qui réside dans mon activité principale) pleine de liens comme:

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

Puis j'ai une nouvelle classe appelée "Liens" qui est appelée à partir d'un bouton de menu dans mon activité principale qui définit une belle mise en page avec un RadioBubTton par lien (dans une vision de ScrollView) et une "Go!" bouton au bas de la page (mise en page relative).

Tout cela fonctionne bien, sauf une chose. Si vous quittez l'application à l'aide du bouton arrière et revenez dans l'application en cliquant sur l'icône dans le menu Android, vous arrivez à l'activité principale, puis cliquez sur le bouton "LIENS" dans le menu et ils sont doublés à chaque fois. ??? ainsi:

Link 0
Link 1
Link 2
Link 0 (encore)
Link 1 (encore)
Link 2 (encore)

Cela ajoute les liens vers le bas chaque fois que vous revenez à l'activité "Liens" de partir. Est-ce que je peux appeler une méthode pour effacer tous les boutons radio générés par la dernière session de l'activité des liens avant de les mettre dans le radiogroupe? J'ai essayé de changer mon onpaause () à la finition (code> Terminer (); J'ai essayé de libérer le cache avec radiogroup.destroydrawingcache (); rien ne semble le faire .


0 commentaires

3 Réponses :


0
votes

au lieu de cette approche "Supprimer tout" (ce qui est sûrement possible), j'essaierais quelque chose de différent - Placez un point d'arrêt dans le code qui remplit d'abord vos boutons radio et appuyez sur la touche Retour, puis revenez dans l'application, puis retour, retour à nouveau dans l'application, etc.

Si le point d'arrêt est frappé à chaque fois que vous retournez dans l'application, alors il y a votre problème. Fixez-le en déplaçant ce code de l'endroit où il doit surcree, par exemple, il est donc appelé une fois au moment de la création d'activité. Si ce n'est pas faisable, utilisez une variable de classe de classe comme «Boolean MradiobutontononsPopoplopulé» qui est cochée juste avant le code de la population des boutons radio et est défini sur True après la (première) population de boutons radio.


1 commentaires

Vous avez raison, je souhaite juste qu'il y ait de meilleures méthodes pour le radiogroupe comme "rafraîchir ();" ou "ClearButtons ();" Ce qui serait génial pour ceux qui génèrent automatiquement les boutons de, disent, un fichier XML dans le projet APK.



0
votes

Je l'ai eu, je suppose que l'endroit en mémoire a laissé la arraylist, même après Ondestroy () a été appelée. Tout ce que j'ai fait pour résoudre ce problème, c'était appelé ".clear ();" Sur le ListArray, juste après l'avoir instancié dans l'activité principale de mon application Android. De cette façon, chaque fois que l'application est ouverte, elle est instanciée, puis remplacée. Fonctionne comme un charme :)


2 commentaires

Heh, c'est sûr - mais réfléchissez au traitement supplémentaire nécessaire pour reconstruire chaque fois le groupe de boutons radio. Sinon, c'est votre choix de conception


Est-ce une phrase? "Pensez au traitement supplémentaire nécessaire pour reconstruire chaque fois le groupe de boutons radio"? De plus, le groupe Radiobutton est un résultat direct de l'utilisateur de l'application. Cela signifie que les choses sont entrées ou sorties en raison de l'entrée. Bien sûr, j'ai besoin de "reconstruire chaque fois le groupe de boutons radio". Merci.



12
votes

Vous pouvez supprimer vos boutons radio créés de manière dynamique en utilisant comme ceci:

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


0 commentaires