2

Je souhaite utiliser un fragment dans plusieurs activités. Dans la première activité, je vais l'utiliser, je l'ai créé parandroid - utiliser le même fragment pour plusieurs activités

final ScoreBoard fragment = new ScoreBoard(); 
    getFragmentManager() 
      .beginTransaction() 
      .add(R.id.fragment_container, fragment) 
      .commit(); 

Dans la deuxième activité, j'ai placé le même code dans la méthode onCreate(). Toutefois, le fragment conserve la réinitialisation et ne conserve pas ses valeurs dans la deuxième activité même si je les avais enregistrées via onSavedInstanceState() et onActivityCreated(). Suis-je en train de recréer le fragment et de le réinitialiser? Je vous remercie.

+0

bosse de bosse de bosse bu mp – joshua1991

+0

Voir aussi [Comment réutiliser un fragment dans plusieurs activités] (https://stackoverflow.com/a/46342 916/3681880) – Suragch

Répondre

3

Oui, vous pouvez utiliser le même fragment dans différentes activités.

Créez une vue fragment_container dans toutes les activités dont vous avez besoin pour appeler le fragment. Ensuite, appelez le fragment dans ce conteneur.

ex:

Activité A: fragment appelant à l'activité A

final ScoreBoard fragment = new ScoreBoard(); 
    getFragmentManager() 
      .beginTransaction() 
      .add(R.id.fragment_container_activityA, fragment) 
      .commit(); 

Activité B: fragment appel à l'activité B

final ScoreBoard fragment = new ScoreBoard(); 
    getFragmentManager() 
      .beginTransaction() 
      .add(R.id.fragment_container_activityB, fragment) 
      .commit(); 
+0

Je vois. Donc l'identifiant du conteneur de fragment doit être différent? – joshua1991

+0

ouais .. chaque activité contient une mise en page différente et chaque mise en page doit contenir un conteneur différent. Dans cette vue conteneur, appelez le fragment. –