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:
-
Cez aktivitu:
- Fragment A volá metódu aktivity a odovzdáva údaje.
- Aktivita odovzdáva údaje fragmentu B.
-
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.
-
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
}