Sobes.tech
Junior — Middle

What methods can be used to implement data exchange between fragments in an application?

sobes.tech AI

Answer from AI

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

  1. Through Activity — fragments pass data via the parent Activity, which acts as an intermediary.

  2. Using ViewModel with LiveData — a shared ViewModel linked to the Activity allows fragments to observe data changes.

  3. Callback interfaces — a fragment defines an interface that the Activity or another fragment implements to pass data.

  4. EventBus (e.g., Otto, EventBus) — libraries for publishing and subscribing to events.

  5. SharedPreferences or database — for more persistent storage and data exchange.

Example with ViewModel:

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

// In the sender fragment
sharedViewModel.selectedItem.value = "Data"

// In the receiver fragment
sharedViewModel.selectedItem.observe(viewLifecycleOwner) { data ->
    // handle data
}