Je dois transmettre certaines variables à DialogFragment
, pour pouvoir effectuer une action. Eclipse suggère que je devrais utiliser
Fragment#setArguments(Bundle)
Mais je ne sais pas comment utiliser cette fonction. Comment puis-je l'utiliser pour transmettre des variables à ma boîte de dialogue?
Réponses:
En utilisant
newInstance
Et obtenir les Args comme ça
Voir l'exemple complet ici
http://developer.android.com/reference/android/app/DialogFragment.html
la source
J'avais l'habitude d'envoyer des valeurs de ma liste
Comment envoyer
Comment recevoir à l' intérieur de la méthode onCreate () de DialogFragment
// Téléchargement de Kotlin
// recevoir
la source
Il y a donc deux façons de passer des valeurs d'un fragment / activité à un fragment de dialogue: -
Méthode 1:
Méthode 2:
la source
comme manière générale de travailler avec des fragments, comme JafarKhQ l'a noté, vous ne devez pas passer les paramètres dans le constructeur mais avec un
Bundle
.la méthode intégrée pour cela dans la
Fragment
classe estsetArguments(Bundle)
etgetArguments()
.En gros, ce que vous faites est de créer un lot avec tous vos
Parcelable
articles et de les envoyer.à son tour, votre Fragment recevra ces objets
onCreate
et leur fera de la magie.la manière indiquée dans le
DialogFragment
lien était une façon de le faire dans un fragment à apparition multiple avec un type spécifique de données et fonctionne bien la plupart du temps, mais vous pouvez également le faire manuellement.la source
Dans mon cas, aucun des codes ci-dessus ne
bundle-operate
fonctionne; Voici ma décision (je ne sais pas si c'est du bon code ou non, mais ça marche dans mon cas):la source
Juste que je veux montrer comment faire ce que dit @JafarKhQ à Kotlin pour ceux qui utilisent kotlin qui pourrait les aider et gagner du temps sur le thème aussi:
vous devez donc créer un objet compagnon pour créer une nouvelle fonction newInstance
vous pouvez définir le paramètre de la fonction comme vous le souhaitez. en utilisant
vous pouvez définir vos arguments.
Vous pouvez maintenant utiliser
args.putSomthing
pour vous ajouter des arguments que vous donnez comme préamètre dans votre fonction newInstance.putString(key:String,str:String)
pour ajouter une chaîne par exemple et ainsi de suiteMaintenant, pour obtenir l'argument, vous pouvez utiliser
arguments.getSomthing(Key:String)
=> commearguments.getString("1")
voici un exemple complet
Maintenant, comment créer votre boîte de dialogue, vous pouvez faire quelque chose comme ça dans une autre classe
comme ça par exemple
la source