Junior — Middle
Какви методи се използват за обмен на данни между Fragment-и в Android?
sobes.tech AI
Отговор от AI
Обменът на данни между Fragment в Android може да бъде реализиран по няколко начина:
-
Чрез Activity — фрагментите комуникират чрез родителската Activity, която действа като посредник. Например, един фрагмент извиква метод на Activity, предавайки данни, а Activity ги препраща на друг фрагмент.
-
Използване на ViewModel с жизнения цикъл на Activity — споделен ViewModel, свързан с Activity, позволява на фрагментите да обменят данни чрез LiveData.
-
Използване на интерфейси — фрагментът дефинира интерфейс за предаване на данни, който реализира Activity.
-
EventBus или други библиотеки за събития — позволяват изпращане на събития между компоненти.
Пример с ViewModel:
class SharedViewModel : ViewModel() {
val selected = MutableLiveData<String>()
fun select(item: String) {
selected.value = item
}
}
// В Fragment A
viewModel.select("Данни")
// В Fragment B
viewModel.selected.observe(viewLifecycleOwner) { data ->
// обработка на данните
}