J'ai quelques fragments qui doivent montrer un dialogue régulier. Dans ces boîtes de dialogue, l'utilisateur peut choisir une réponse oui / non, puis le fragment doit se comporter en conséquence.
Maintenant, la Fragmentclasse n'a pas de onCreateDialog()méthode à remplacer, donc je suppose que je dois implémenter les dialogues à l'extérieur, dans le contenant Activity. Ce n'est pas grave, mais il est alors Activitynécessaire de rapporter la réponse choisie d'une manière ou d'une autre au fragment. Je pourrais bien sûr utiliser un modèle de rappel ici, de sorte que le fragment s'enregistre lui-même auprès Activityd'une classe d'auditeur, et l'activité rapporterait la réponse à travers cela, ou quelque chose comme ça.
Mais cela semble être un gros gâchis pour une tâche simple comme l'affichage d'un "simple" dialogue oui-non dans un fragment. De plus, de cette façon, je Fragmentserais moins autonome.
Y a-t-il un moyen plus propre de le faire?
Éditer:
La réponse à cette question n'explique pas vraiment en détail comment utiliser DialogFragments pour afficher des boîtes de dialogue à partir de Fragments. Alors AFAIK, la voie à suivre est:
- Affichez un fragment.
- Si nécessaire, instanciez un DialogFragment.
- Définissez le fragment d'origine comme cible de ce DialogFragment, avec
.setTargetFragment(). - Afficher le DialogFragment avec .show () du fragment d'origine.
- Lorsque l'utilisateur choisit une option sur ce DialogFragment, informez le Fragment d'origine de cette sélection (par exemple, l'utilisateur a cliqué sur «oui»), vous pouvez obtenir la référence du Fragment d'origine avec .getTarget ().
- Ignorez le DialogFragment.