Sobes.tech
Junior — Middle

Ako sa zabezpečuje prenos informácií medzi komponentami Fragment v Android?

sobes.tech AI

Odpoveď od AI

V Androide sa transferom informácií medzi fragmentmi zvyčajne prebieha cez aktivitu, ktorá ich obsahuje, alebo pomocou zdieľaných ViewModelov.

Hlavné spôsoby:

  1. Cez aktivitu:

    • Fragment A volá metódu aktivity a odovzdáva údaje.
    • Aktivita odovzdáva údaje fragmentu B.
  2. Použitie rozhraní:

    • Fragment A deklaruje rozhranie na prenos údajov.
    • Aktivita implementuje toto rozhranie a prijíma údaje od fragmentu A, potom ich odovzdáva fragmentu B.
  3. Shared ViewModel (s použitím architektonických komponentov):

    • Oba fragmenty používajú rovnaký ViewModel spojený s aktivitou.
    • ViewModel obsahuje LiveData, cez ktoré fragmenty vymieňajú údaje.

Príklad s Shared ViewModel:

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

// V fragmente A
viewModel.selectedItem.value = "Dáta na prenos"

// V fragmente B
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
    // Používame prijaté údaje
}