Junior — Middle
What methods exist for data exchange between user interface components in an application?
sobes.tech AI
Answer from AI
There are several ways to exchange data between user interface components in an Android application:
- Intent and Bundle — for passing data between Activities or Fragments.
- ViewModel and LiveData — for exchanging data between fragments within the same Activity, providing reactive UI updates.
- SharedPreferences — for saving and reading simple data.
- EventBus (e.g., Otto library or GreenRobot EventBus) — for passing events between components.
- Shared object or singleton — for storing and accessing data from different parts of the application.
Example with ViewModel and LiveData:
class SharedViewModel : ViewModel() {
val selectedItem = MutableLiveData<String>()
}
// In Fragment A
viewModel.selectedItem.value = "Data to pass"
// In Fragment B
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
// update UI with new data
}