Назад к вопросам
Junior — Middle
70
Какие способы существуют для обмена данными между компонентами пользовательского интерфейса в приложении?
Ответ от нейросети
sobes.tech AI
Для обмена данными между компонентами пользовательского интерфейса в Android-приложении можно использовать несколько способов:
- Intent и Bundle — для передачи данных между Activity или Fragment.
- ViewModel и LiveData — для обмена данными между фрагментами в рамках одного Activity, обеспечивая реактивное обновление UI.
- SharedPreferences — для сохранения и чтения простых данных.
- EventBus (например, библиотека Otto или GreenRobot EventBus) — для передачи событий между компонентами.
- Общий объект или синглтон — для хранения и доступа к данным из разных частей приложения.
Пример с ViewModel и LiveData:
class SharedViewModel : ViewModel() {
val selectedItem = MutableLiveData<String>()
}
// В Fragment A
viewModel.selectedItem.value = "Данные для передачи"
// В Fragment B
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
// обновить UI с новыми данными
}