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:
-
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.
-
Using ViewModel with Activity lifecycle — a shared ViewModel associated with the Activity allows fragments to exchange data through LiveData.
-
Using interfaces — a fragment defines an interface for data transfer, which is implemented by the Activity.
-
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
}