Untuk semua developer Kotlin di luar sana:
Berikut adalah solusi yang diusulkan Android Studio untuk mengirim data ke Fragmen Anda (= saat Anda membuat Fragmen Kosong dengan File -> Baru -> Fragmen -> Fragmen (Kosong) dan Anda mencentang "sertakan metode pabrik fragmen").
Taruh ini di Fragmen Anda:
class MyFragment: Fragment {
...
companion object {
@JvmStatic
fun newInstance(isMyBoolean: Boolean) = MyFragment().apply {
arguments = Bundle().apply {
putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
}
}
}
}
.apply
adalah trik yang bagus untuk menyetel data saat sebuah objek dibuat, atau seperti yang dinyatakan di sini :
Memanggil fungsi yang ditentukan [blok] dengan this
nilai sebagai penerima dan mengembalikan this
nilai.
Kemudian di Aktivitas atau Fragmen Anda lakukan:
val fragment = MyFragment.newInstance(false)
...
dan baca Argumen di Fragmen Anda seperti:
private var isMyBoolean = false
override fun onAttach(context: Context?) {
super.onAttach(context)
arguments?.getBoolean("REPLACE WITH A STRING CONSTANT")?.let {
isMyBoolean = it
}
}
Untuk "mengirim" data kembali ke Aktivitas Anda , cukup tentukan fungsi di Aktivitas Anda dan lakukan hal berikut di Fragmen Anda:
(activity as? YourActivityClass)?.callYourFunctionLikeThis(date)
Nikmati keajaiban Kotlin!