Vous ne pouvez pas définir l'ID d'un fragment de manière programmatique. .
Il existe cependant un String tag
que vous pouvez définir dans la FragmentTransaction et qui peut être utilisée pour identifier de manière unique un fragment.
Comme Aleksey l'a souligné, vous pouvez passer un ID à FragmentTransaction
's add(int, Fragment)
méthode. Cependant, cela ne spécifie pas l'ID d'un Fragment. Il spécifie l'ID d'un ViewGroup
pour insérer le Fragment
en. Ce n'est pas très utile pour l'objectif que vous poursuivez, car cela ne permet pas d'identifier de manière unique Fragment
mais ViewGroup
s. Ces ID sont de conteneurs celui-là ou plus Les fragments peuvent être ajoutés de manière dynamique. L'utilisation d'une telle méthode pour identifier Fragment
vous obligerait à ajouter ViewGroup
de façon dynamique au Layout pour chaque Fragment
que vous insérez. Ce serait plutôt encombrant.
Donc, si votre question est de savoir comment créer un identifiant unique pour un fragment que vous ajoutez dynamiquement, la réponse est d'utiliser FragmentTransaction
's add(int containerViewId, Fragment fragment, String tag) et FragmentManager
's findFragmentByTag(Chaîne) méthode.
Dans une de mes applications, j'ai été obligé de générer des chaînes de caractères de façon dynamique. Mais ce n'est pas si coûteux par rapport à la FragmentTransaction réelle, de toute façon.
Un autre avantage de la méthode des balises est qu'elle peut identifier un fragment qui n'est pas ajouté à l'interface utilisateur. Voir la méthode FragmentTransaction add(Fragment, String) méthode. Fragment
ne doivent pas avoir View
s ! Ils peuvent également être utilisés pour faire persister un état éphémère entre les changements de configuration !
0 votes
Vous pouvez le définir dans le fichier xml de mise en page