Aller au contenu

Echange d'information avec des onglets


elnney

Recommended Posts

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...