Dışarıdaki tüm Kotlin geliştiricileri için:
İşte Fragmanınıza veri göndermek için Android Studio tarafından önerilen çözüm (= Dosya ile Boş Bir Parça oluşturduğunuzda -> Yeni -> Parça -> Parça (Boş) ve "parça fabrikası yöntemlerini dahil et" seçeneğini işaretlediğinizde).
Bunu Parçanıza koyun:
class MyFragment: Fragment {
...
companion object {
@JvmStatic
fun newInstance(isMyBoolean: Boolean) = MyFragment().apply {
arguments = Bundle().apply {
putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
}
}
}
}
.apply
bir nesne oluşturulduğunda veya burada belirtildiği gibi verileri ayarlamak için iyi bir numaradır :
Belirtilen işlevi [block] this
değerini alıcı olarak çağırır ve this
değeri döndürür .
Ardından Faaliyetinizde veya Parçanızda şunları yapın:
val fragment = MyFragment.newInstance(false)
... // transaction stuff happening here
ve Parçanızdaki Bağımsız Değişkenleri aşağıdaki gibi okuyun:
private var isMyBoolean = false
override fun onAttach(context: Context?) {
super.onAttach(context)
arguments?.getBoolean("REPLACE WITH A STRING CONSTANT")?.let {
isMyBoolean = it
}
}
Verileri tekrar Etkinliğinize "göndermek" için, Etkinliğinizde bir işlev tanımlamanız ve Parçanızda aşağıdakileri yapmanız yeterlidir:
(activity as? YourActivityClass)?.callYourFunctionLikeThis(date) // your function will not be called if your Activity is null or is a different Class
Kotlin büyüsünün tadını çıkarın!