Saya perlu meneruskan beberapa variabel ke DialogFragment
, jadi saya bisa melakukan tindakan. Eclipse menyarankan agar saya menggunakan
Fragment#setArguments(Bundle)
Tapi saya tidak tahu bagaimana menggunakan fungsi ini. Bagaimana saya bisa menggunakannya untuk meneruskan variabel ke dialog saya?
Jawaban:
Menggunakan
newInstance
Dan dapatkan Arg seperti ini
Lihat contoh lengkapnya di sini
http://developer.android.com/reference/android/app/DialogFragment.html
sumber
Saya biasa mengirim beberapa nilai dari listview saya
Bagaimana cara mengirim
Cara menerima di dalam metode onCreate () dari DialogFragment
// Unggahan Kotlin
// terima
sumber
Jadi, ada dua cara untuk meneruskan nilai dari fragmen / aktivitas ke fragmen dialog: -
Metode 1:
Metode 2:
sumber
sebagai cara umum bekerja dengan Fragmen, seperti yang dicatat JafarKhQ, Anda tidak boleh meneruskan params di konstruktor tetapi dengan a
Bundle
.metode bawaan untuk itu di
Fragment
kelas adalahsetArguments(Bundle)
dangetArguments()
.pada dasarnya, yang Anda lakukan adalah menyiapkan paket dengan semua
Parcelable
item Anda dan mengirimkannya.pada gilirannya, Fragmen Anda akan mendapatkan item tersebut
onCreate
dan melakukan keajaiban bagi mereka.cara yang ditunjukkan pada
DialogFragment
tautan adalah salah satu cara untuk melakukan ini dalam fragmen yang muncul banyak dengan satu jenis data tertentu dan berfungsi dengan baik sebagian besar waktu, tetapi Anda juga dapat melakukannya secara manual.sumber
Dalam kasus saya, tidak ada kode di atas yang
bundle-operate
berfungsi; Ini keputusan saya (saya tidak tahu apakah itu kode yang tepat atau tidak, tetapi berfungsi dalam kasus saya):sumber
Hanya itu saya ingin menunjukkan bagaimana melakukan apa yang dikatakan @JafarKhQ di Kotlin bagi mereka yang menggunakan kotlin yang mungkin membantu mereka dan menghemat waktu tema juga:
jadi Anda harus membuat objek pendamping untuk membuat fungsi newInstance
Anda dapat mengatur parameter fungsi apa pun yang Anda inginkan. menggunakan
Anda dapat mengatur argumen Anda.
Anda sekarang dapat menggunakan
args.putSomthing
untuk menambahkan argumen yang Anda berikan sebagai prameter dalam fungsi newInstance Anda.putString(key:String,str:String)
untuk menambahkan string misalnya dan sebagainyaSekarang untuk mendapatkan argumen Anda bisa menggunakan
arguments.getSomthing(Key:String)
=> likearguments.getString("1")
berikut adalah contoh lengkapnya
Sekarang bagaimana membuat dialog Anda, Anda dapat melakukan sesuatu seperti ini di kelas lain
seperti ini misalnya
sumber