Necesito pasar algunas variables a DialogFragment
poder realizar una acción. Eclipse sugiere que debería usar
Fragment#setArguments(Bundle)
Pero no sé cómo usar esta función. ¿Cómo puedo usarlo para pasar variables a mi diálogo?
Necesito pasar algunas variables a DialogFragment
poder realizar una acción. Eclipse sugiere que debería usar
Fragment#setArguments(Bundle)
Pero no sé cómo usar esta función. ¿Cómo puedo usarlo para pasar variables a mi diálogo?
Respuestas:
Utilizando
newInstance
Y obtén los Args así
Vea el ejemplo completo aquí
http://developer.android.com/reference/android/app/DialogFragment.html
fuente
Solía enviar algunos valores desde mi listview
Cómo enviar
Cómo recibir dentro del método onCreate () de DialogFragment
// Carga de Kotlin
// recibir
fuente
Entonces, hay dos formas de pasar valores de fragmento / actividad a fragmento de diálogo: -
Método 1:
Método 2:
fuente
Como forma general de trabajar con Fragmentos, como señaló JafarKhQ, no debe pasar los parámetros en el constructor sino con un
Bundle
.el método incorporado para eso en la
Fragment
clase essetArguments(Bundle)
ygetArguments()
.Básicamente, lo que haces es configurar un paquete con todos tus
Parcelable
artículos y enviarlos.a su vez, su Fragmento obtendrá esos elementos en su
onCreate
y les hará su magia.la forma que se muestra en el
DialogFragment
enlace era una forma de hacer esto en un fragmento de aparición múltiple con un tipo específico de datos y funciona bien la mayor parte del tiempo, pero también puede hacerlo manualmente.fuente
En mi caso, ninguno de los códigos anteriores
bundle-operate
funciona; Aquí está mi decisión (no sé si es el código correcto o no, pero funciona en mi caso):fuente
Solo que quiero mostrar cómo hacer lo que dije @JafarKhQ en Kotlin para aquellos que usan kotlin que podría ayudarlos y también ahorrar tiempo en el tema:
por lo que debe crear un objeto complementario para crear una nueva función newInstance
puede configurar el parámetro de la función como desee. utilizando
puede configurar sus argumentos.
Ahora puede usar
args.putSomthing
para agregar sus argumentos que u da como parámetro en su función newInstance.putString(key:String,str:String)
para agregar una cadena, por ejemplo, y así sucesivamenteAhora, para obtener el argumento, puede usar
arguments.getSomthing(Key:String)
=> likearguments.getString("1")
aquí hay un ejemplo completo
Ahora, cómo crear su diálogo, puede hacer algo como esto en otra clase
así por ejemplo
fuente