Dla wszystkich programistów Kotlin:
Oto proponowane rozwiązanie Android Studio do wysyłania danych do Twojego fragmentu (= podczas tworzenia pustego fragmentu za pomocą polecenia Plik -> Nowy -> Fragment -> Fragment (pusty) i zaznaczania opcji „dołącz metody fabryki fragmentów”).
Umieść to w swoim fragmencie:
class MyFragment: Fragment {
...
companion object {
@JvmStatic
fun newInstance(isMyBoolean: Boolean) = MyFragment().apply {
arguments = Bundle().apply {
putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
}
}
}
}
.apply
to fajna sztuczka do ustawiania danych podczas tworzenia obiektu, lub jak to tutaj stwierdzają :
Wywołuje określoną funkcję [blok] z this
wartością jako odbiorcą i zwraca this
wartość.
Następnie w swojej aktywności lub fragmencie wykonaj:
val fragment = MyFragment.newInstance(false)
... // transaction stuff happening here
i przeczytaj Argumenty w swoim fragmencie, takie jak:
private var isMyBoolean = false
override fun onAttach(context: Context?) {
super.onAttach(context)
arguments?.getBoolean("REPLACE WITH A STRING CONSTANT")?.let {
isMyBoolean = it
}
}
Aby „wysłać” dane z powrotem do swojego działania , po prostu zdefiniuj funkcję w swoim działaniu i wykonaj następujące czynności w swoim fragmencie:
(activity as? YourActivityClass)?.callYourFunctionLikeThis(date) // your function will not be called if your Activity is null or is a different Class
Ciesz się magią Kotlina!