Sobes.tech
Junior — Middle

Какви методи се използват за обмен на данни между Fragment-и в Android?

sobes.tech AI

Отговор от AI

Обменът на данни между Fragment в Android може да бъде реализиран по няколко начина:

  1. Чрез Activity — фрагментите комуникират чрез родителската Activity, която действа като посредник. Например, един фрагмент извиква метод на Activity, предавайки данни, а Activity ги препраща на друг фрагмент.

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

  3. Използване на интерфейси — фрагментът дефинира интерфейс за предаване на данни, който реализира Activity.

  4. EventBus или други библиотеки за събития — позволяват изпращане на събития между компоненти.

Пример с ViewModel:

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

    fun select(item: String) {
        selected.value = item
    }
}

// В Fragment A
viewModel.select("Данни")

// В Fragment B
viewModel.selected.observe(viewLifecycleOwner) { data ->
    // обработка на данните
}