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