2010-06-21 4 views
0

Disons que nous avons une classe principale avec 5 boutons, où chaque fois que vous cliquez sur une activité qui affiche des informations avec 2 textviews.Réutilisation d'une activité en changeant les propriétés des éléments

La mise en page pour les 5 activités sera la même, donc naturellement je voudrais utiliser une activité et la réutiliser en changeant le texte affiché dans ces 2 textviews pour chaque bouton pressé.

Comment est-ce que je peux faire ceci? Penser à avoir une intention globale dans ma classe principale, qui est appelée par startActivity() pour chaque bouton avec la méthode .putExtra() pour envoyer les données supplémentaires afin de savoir de quel bouton il vient (de sorte que je puisse changer le textviews).

D'autres solutions qui sont mieux?

Encore une question, comment changer le titre de l'activité avec le code Java pendant que l'application est en cours d'exécution? Avant que l'application ne démarre, on peut utiliser le XML, mais comment le changer si j'essaye de réutiliser l'activité?

<activity android:name=".MynewClass" 
      android:label="@string/class_text"> 
</activity> 

Répondre

2

La mise en page pour l'ensemble des 5 activités sera le même, si naturellement je voudrais d'utiliser une activité et le réutiliser par changer le texte affiché dans les 2 textviews pour chaque touche enfoncée.

C'est certainement une possibilité.

Comment est-ce que je peux faire ceci?

Votre solution (Intent avec extras) semble bien. Cependant, je ne ferais pas un "global" Intent, puisque vous le changez via les extras. Il suffit de créer un nouveau Intent lorsque vous en avez besoin.

comment peut-on changer le titre de l'activité avec le code java tandis que l'application est en marche?

Appelez setTitle().

+0

Juste une question de plus. Ne pas créer de nouvelles intentions tout le temps avec une nouvelle intention (ceci, mysecondclass.class) de l'activité principale créer réellement une nouvelle activité? Ou est-ce que les intentions n'appellent toujours qu'une seule activité en tout temps? – Milan

+0

Non, la création de nouveaux "Intents" n'a aucune incidence sur la création par Android de nouvelles instances de "Activity". Par défaut, de nouvelles instances de 'Activity' sont créées. Voir 'android: launchMode' (dans le manifeste d'activité) ou' FLAG_ACTIVITY_SINGLE_TOP' et 'FLAG_ACTIVITY_CLEAR_TOP' (pour contrôler ce comportement sur la base de' 'Intent'). – CommonsWare

Questions connexes