Sobes.tech
Junior — Middle

How is data exchange between Fragments implemented in Android?

sobes.tech AI

Answer from AI

Data exchange between Fragments in Android can be implemented in several ways:

  1. Through Activity — fragments communicate via a parent Activity, which acts as an intermediary. For example, one fragment calls an Activity method, passing data, and the Activity passes it to another fragment.

  2. Using ViewModel with Activity lifecycle — a shared ViewModel associated with the Activity allows fragments to exchange data through LiveData.

  3. Using interfaces — a fragment defines an interface for data transfer, which is implemented by the Activity.

  4. EventBus or other event libraries — allow sending events between components.

Example with ViewModel:

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

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

// In Fragment A
viewModel.select("Data")

// In Fragment B
viewModel.selected.observe(viewLifecycleOwner) { data ->
    // handle data
}