Для всех разработчиков 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
Наслаждайтесь магией Kotlin!