Android - getTargetFragment et setTargetFragment - Que sont-ils utilisés pour
J'ai essayé de chercher mais je suis encore un peu perdu. J'ai l'habitude de faire fragment de fragment de communication par le biais d'un Activity
via des interfaces ou un BroadcastReceiver
.
De toute façon, ma question est qu'est-ce que l'utilisation de getTargetFragment
? Quelqu'un peut-il fournir un cas d'utilisation ou juste un exemple rapide, donc je peux comprendre son utilisation?
- stackoverflow.com/a/13733914/1093872 voici un autre bon exemple... mais les interfaces sont également bonnes.
- Merci ...ça ressemble juste à une place de titulaire pour un fragment. donc, si j'ai un fragment et je setTarget alors je peux utiliser getTarget pour récupérer le fragment. Son similaire à setTag sur les points de vue.
- Au lieu de BroadcastReceiver, pensez à utiliser LocalBroadcastManager (ici: developer.android.com/reference/android/support/v4/content/... ) , ou créer votre propre mécanisme de traitement d'événements.
Vous devez vous connecter pour publier un commentaire.
Cas d'utilisation = 2 fragments hébergé par la même activité.
Où
startActivityForResult()
établit une relation entre les 2 activités,setTargetFragment()
définit l'appelant/appelé relation entre les 2 fragments.setTargetFragment(cible) permet à l' "appelé" fragment de savoir où envoyer le résultat.
onActivityResult()
est appelée manuellement dans ce cas.j'ai enfin trouvé comment l'utiliser setTarget dans un fragment et je voulais le partager. son tout à fait utile lorsque vous souhaitez communiquer à partir de fragment de fragment.
voici un exemple: supposons que vous vouliez afficher une boîte de dialogue et quand il ferme vous voulez faire un peu d'action.
dans votre fragment1 qui va utiliser la boîte de dialogue que vous pourriez faire ceci:
et dans votre fragment qui a appelé la boîte de dialogue, vous devrez remplacer onActivityResult comme ceci:
et dans le myDialogFragment vous pourriez faire ceci:
où REQ_CODE peut être n'importe quel int bien entendu . Très utile pour le fragment de fragment de communication. mais je préfère quand même l'événement de bus que parfois, après l'envoi de données à une cible de son point de vue peut-être déjà été détruit (au cas ou son fragment) et puis si vous essayez de mettre à jour la vue en onActivityResult vous obtiendrez un crash. je dirais donc utile de simplement transmettre des données, mais pas de mise à jour de l'INTERFACE utilisateur, sauf si vous avez fait une "ajouter" fragment de transaction et de ne pas les remplacer (qui détruit la garde de l'état).
getTargetFragment().onActivityResult()
parce que la valeur de retour degetTargetFragment()
est nul mais je ne peux pas reproduire ce problème. Je tiens donc à vous rapprocher de décrire, vraiment ce que vous voulez dire par cette partie de la phrase.De ce que j'ai pu tirer de la lecture de la documentation que ces méthodes sont une autre façon d'accéder aux données à partir d'un autre Fragment. Voici une exemple de projet que j'ai écrit et qui démontre un seul cas d'utilisation pour l'utilisation de ces méthodes. Je suis sûr qu'il y a plus de cas d'utilisation, par contre...