J'ai quelques fragments qui ont besoin de montrer un dialogue régulier. Sur ces boîtes de dialogue, l'utilisateur peut choisir une réponse oui/non, et puis le fragment doit se comporter en conséquence.
Maintenant, l' Fragment
de la classe n'a pas d' onCreateDialog()
méthode pour remplacer, donc je suppose que je dois mettre en œuvre les boîtes de dialogue à l'extérieur, dans le contenant Activity
. C'est ok, mais alors l' Activity
des besoins de rapporter la réponse choisie en quelque sorte le fragment. Je pourrais bien sûr utiliser un callback modèle ici, de sorte que le fragment s'enregistre lui-même à l' Activity
avec un écouteur de classe, et l'Activité de rapporter la réponse thru, ou quelque chose comme ça.
Mais ce qui semble être tout à fait un grand gâchis pour une tâche simple que l'affichage d'un putain de oui-pas de dialogue dans un fragment. Aussi, de cette façon, mon Fragment
serait de moins en moins autonome.
Est-il une manière plus propre de faire cela?
Edit:
La réponse à cette question n'a pas vraiment l'expliquer en détail comment on doit utiliser DialogFragments pour afficher les boîtes de dialogue à partir de Fragments. Donc, autant que je sache, la voie à suivre est:
- Affichage d'un Fragment.
- Si nécessaire, instancier un DialogFragment.
- Définir le Fragment d'origine en tant que cible de cette DialogFragment,
.setTargetFragment()
. - Afficher la DialogFragment avec .show() à partir du Fragment initial.
- Lorsque l'utilisateur choisit une option sur ce DialogFragment, aviser le Fragment d'origine sur cette sélection (par exemple, l'utilisateur a cliqué sur "oui"), vous pouvez obtenir la référence du Fragment initial .getTarget().
- Rejeter la DialogFragment.