web-dev-qa-db-fra.com

Différences et utilisations de onCreate (), onCreateView () et onActivityCreated () en fragments

Quelles sont les différences entre onCreate(), onCreateView() et onActivityCreated() en fragments et à quoi serviraient-ils?

289

onCreate ():

La méthode onCreate() dans un Fragment est appelé après le Activity's onAttachFragment() mais avant cet Fragment's onCreateView().
Dans cette méthode, vous pouvez affecter des variables, obtenir des extras Intent et tout ce qui n’implique pas la hiérarchie des vues (c’est-à-dire des initialisations non graphiques). En effet, cette méthode peut être appelée lorsque le onCreate() de Activity n'est pas terminé et que tenter d'accéder à la hiérarchie de la vue ici risque alors de provoquer un blocage.

onCreateView ():

Une fois que onCreate() est appelé (dans Fragment), le Fragment 's onCreateView() est appelé. Vous pouvez affecter vos variables View et faire toute initialisation graphique . Vous êtes censé renvoyer un View à partir de cette méthode. Il s'agit de la vue principale de l'interface utilisateur. Toutefois, si votre Fragment n'utilise pas de dispositions ni de graphiques, vous pouvez renvoyer null (se produit par défaut si vous ne le remplacez pas).

onActivityCreated ():

Comme son nom l'indique, il s'agit de appelé après que Activity 's onCreate() a terminé . Il est appelé après onCreateView() et est principalement utilisé pour les initialisations finales (par exemple, modification d'éléments de l'interface utilisateur).


Pour résumer ...
... ils sont tous appelés dans le Fragment mais sont appelés à des moments différents.
onCreate() est appelé en premier pour effectuer toute initialisation non graphique. Ensuite, vous pouvez affecter et déclarer toutes les variables View que vous souhaitez utiliser dans onCreateView(). Ensuite, utilisez onActivityCreated() pour effectuer les initialisations finales que vous souhaitez effectuer une fois que tout est terminé.


Si vous voulez voir la documentation officielle de Android, vous pouvez la trouver ici:
- onCreate()
- onCreateView()
- onActivityCreated()

Il y a aussi quelques questions/réponses légèrement différentes, mais moins développées ici sur Stack Overflow:

365

Pour ceux qui recherchent une réponse concise et imagée:

enter image description herehttps://hanaskuliah.wordpress.com/2015/12/07/Android-5-development-part-6-fragment/


Et,

enter image description here

116
pulp_fiction