Для всіх розробників Kotlin там:
Ось запропоноване Android Studio рішення для надсилання даних у ваш фрагмент (= коли ви створюєте пустий фрагмент з файлом -> новий -> фрагмент -> фрагмент (порожній) і ви поставляєте прапорець "включити фрагменти фабричних методів").
Помістіть це у свій фрагмент:
class MyFragment: Fragment {
...
companion object {
@JvmStatic
fun newInstance(isMyBoolean: Boolean) = MyFragment().apply {
arguments = Bundle().apply {
putBoolean("REPLACE WITH A STRING CONSTANT", isMyBoolean)
}
}
}
}
.apply
приємний трюк для встановлення даних під час створення об’єкта або, як вони тут зазначають :
Викликає вказану функцію [блок] зі this
значенням як її приймачем і повертає this
значення.
Потім у своїй діяльності або фрагменті виконайте:
val fragment = MyFragment.newInstance(false)
... // transaction stuff happening here
і прочитайте такі аргументи у вашому фрагменті, як:
private var isMyBoolean = false
override fun onAttach(context: Context?) {
super.onAttach(context)
arguments?.getBoolean("REPLACE WITH A STRING CONSTANT")?.let {
isMyBoolean = it
}
}
Щоб "повернути" дані назад у свою діяльність , просто визначте функцію у своїй діяльності та виконайте наступне у своєму фрагменті:
(activity as? YourActivityClass)?.callYourFunctionLikeThis(date) // your function will not be called if your Activity is null or is a different Class
Насолоджуйтесь магією Котліна!