elnney Posté(e) 7 octobre 2010 Share Posté(e) 7 octobre 2010 Bonjour, Je sais que le sujet de l'échange d'information entre Activity revient régulièrement, mais là je ne trouve pas de solution. Je m'explique : J'ai 2 Activités et je switch entre les deux avec des onglets. L'activité 1 ne lance pas l'activité 2 donc putString("StringKey", "StringValue") ne fonctionne pas. J'ai pensé a faire transiter les données par ma TabActivity mais je ne vois pas à quel moment envoyer les données. Si quelqu'un a une idée je suis preneur. Edit : J'ai oublié de préciser que j'ai une solution mais je ne sais pas si c'est bien de faire ça : Dans ma TabActivity : public static String id = "test"; Dans l'Activity 1 : TabView.id = "Variable modifiée"; Dans l'Activity 2 : Utilisation de TabView.id Lien vers le commentaire Partager sur d’autres sites More sharing options...
ichpa Posté(e) 7 octobre 2010 Share Posté(e) 7 octobre 2010 Salut, Évidemment, comme tu l'écrit implicitement, le mieux serait d'utiliser le combo Intent/Bundle, plus standard, pour faire transiter les données entre les deux onglets. Mais malheureusement, comme toi je n'ai jamais trouvé de solution convaincante. Voici quelques alternatives que j'ai trouvé : l'utilisation d'un variable statique, très frustrante pour le développeur, n'est pas une aberration car une activité est un singleton. Cependant, même si cela parait évident, il faut être sûr que la TabActivity est forcement instanciée lorsque les activités filles sont affichées ; Dans la même idée, tu peux utilisé des variables (d'instance) dans la TabActivity qui sont mises à jour par un BordcastReceiver enregistré dans la TabActivity et appelé dans les activités filles (peut-être la meilleure idée) ; Ne pas utiliser d'activité pour chaque onglet mais tout inclure dans la TabActivity (solution que j'ai choisi) ; Si quelqu'un à d'autres solutions, je suis preneur. ichpa Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 7 octobre 2010 Share Posté(e) 7 octobre 2010 Je suis moi-même tombé sur ce genre de problème Ne voulant pas faire du static, j'ai choisi de passer par l'Application ce qui correspondait à mes besoins :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
elnney Posté(e) 7 octobre 2010 Auteur Share Posté(e) 7 octobre 2010 Ok, merci beaucoup pour ces infos. Je vais essayer de voir sur les "Best Practices" Java pour déterminer la meilleur solution. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 7 octobre 2010 Share Posté(e) 7 octobre 2010 Pourras-tu faire un retour de tes lectures ? C'est intéressant :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
elnney Posté(e) 12 octobre 2010 Auteur Share Posté(e) 12 octobre 2010 D'après ce que j'ai pu lire sur Internet et sur mon livre JAVA l'utilisation des variables static n'est pas une aberration, c'est même recommandé dans pas mal de cas. J'ai également fait des recherches sur des forums anglais et c'est cette solution qui est proposée à chaque fois. Et comme le dis @ichpa l'activité est un singleton et finalement cette solution est peut être mieux (en terme d'optimisation) que le passage via un putString par exemple, puisqu'aucune autre variable n'est créée finalement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.