Sobes.tech
Junior — Middle

Как се осъществява прехвърлянето на информация между компонентите Fragment в Android?

sobes.tech AI

Отговор от AI

В Android прехвърлянето на информация между фрагменти обикновено става чрез активността, която ги съдържа, или с помощта на споделени ViewModel.

Основни методи:

  1. Чрез активността:

    • Фрагмент A извиква метод на активността и предава данни.
    • Активността предава данните към фрагмент B.
  2. Използване на интерфейси:

    • Фрагмент A обявява интерфейс за пренос на данни.
    • Активността реализира този интерфейс и получава данни от фрагмент A, след което ги предава на фрагмент B.
  3. Shared ViewModel (с използване на архитектурни компоненти):

    • И двата фрагмента използват един и същи ViewModel, свързан с активността.
    • ViewModel съдържа LiveData, чрез която фрагментите обменят данни.

Пример с Shared ViewModel:

class SharedViewModel : ViewModel() {
    val selectedItem = MutableLiveData<String>()
}

// В фрагмент A
viewModel.selectedItem.value = "Данни за пренос"

// В фрагмент B
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
    // Използваме получените данни
}