Récupérer des données à partir d'une boîte de dialogue de fragmentation - meilleures pratiques?
Je suis la conversion d'une partie de mon projet d'utiliser des fragments. Comment pouvons-nous communiquer avec un fragment de dialogue? Je veux créer un fragment de dialogue juste pour avoir un peu de texte saisie de l'utilisateur. Lorsque la boîte de dialogue est fermée, je voudrais passer le texte entré de retour à la "mère" fragment (celle qui a commencé). Exemple:
public class MyFragment extends Fragment {
public void onBtnClick() {
//What's a good way to get data back from this dialog
//once it's dismissed?
DialogFragment dlgFrag = MyFragmentDialog.newInstance();
dlgFrag.show(getFragmentManager(), "dialog");
}
}
Grâce
source d'informationauteur user291701 | 2012-03-19
Vous devez vous connecter pour publier un commentaire.
Une excellente façon de passer ce genre d'Événements est une Interface de Rappel comme descripted dans les Développeurs Android Guide
Votre Fragment de définir une Interface de Rappel comme
Ensuite, vous vérifiez à l'intérieur de votre onAttach Méthode si le Parent mis en œuvre l'Interface de Rappel et d'enregistrer l'Instance.
lors de votre Événement à l'intérieur du Fragment qui se passe il vous suffit d'appeler le Gestionnaire de Rappel
Espère que ça aide, plus d'infos ici
Comme eternalmatt dit que la solution donnée ne réponds pas vraiment à la question. La façon de communiquer le dialogue avec le fragment à l'appel de la
La façon dont je le fais c'est par la création de la FragmentDialog avec une méthode statique où l'auditeur est instanciée et ensuite de faire le
setFragmentTarget()
trucs:Pour créer la boîte de dialogue à partir du fragment il suffit de faire comme d'habitude:
Ensuite, lorsque vous souhaitez communiquer avec le fragment qui appelle la boîte de dialogue juste:
Cette solution ne fonctionne que lorsque le dialogue va être créé à partir de Fragments et pas d'Activités, mais vous pouvez combiner les deux méthodes (
'setFragmentTarget()'
et la'onAttach()'
un) en plus de certains de la Classe des vérifications pour fournir une solution complète.J'ai eu ce problème une fois et après je l'ai résolu, j'ai créé un projet qui pourrait me rappeler comment je l'ai fait. J'ai mis le projet sur github, donc n'importe qui peut voir la solution. Voici le lien: https://github.com/mumasaba/FragmentFragmentBoss
Dans ce projet, nous avons une application simple avec un TextView affichant le mot 'Bonjour le Monde'. Le mode texte est un fragment qui est hébergé par l'application principale activité. Ce fragment a besoin d'afficher un nouveau mot que l'utilisateur peut entrer après qu'ils cliquez sur ajouter des options de menu de l'icône. Lorsque vous cliquez dessus, l'élément de menu options ouvre une boîte de dialogue permettant à l'utilisateur de taper le nouveau mot. Une fois que l'utilisateur est fait, ils peuvent cliquer sur ok pour fermer la boîte de dialogue et afficher leur nouvelle entrée sur le fragment de l'affichage de texte. Par conséquent, le Fragment de DialogFragment communication est illustré.