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 Fragment
classe 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 Activity
né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 Activity
d'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 Fragment
serais 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.