Sobes.tech
Back to questions
Junior — Middle
69

Какие способы существуют для обмена данными между компонентами пользовательского интерфейса в приложении?

Answer from AI

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 с новыми данными
}