Какими методами можно организовать обмен данными между двумя фрагментами в приложении?
Answer from AI
sobes.tech AI
В Android для обмена данными между двумя фрагментами можно использовать несколько подходов:
-
Через Activity — фрагменты общаются через родительскую Activity, которая выступает посредником. Один фрагмент передаёт данные в Activity, а другой получает их.
-
ViewModel с использованием LiveData — общий ViewModel, связанный с Activity, позволяет фрагментам наблюдать за изменениями данных и обмениваться ими реактивно.
-
Интерфейсы обратного вызова (Callback interfaces) — фрагмент реализует интерфейс, который другой фрагмент вызывает через Activity.
-
SharedPreferences или базы данных — для более постоянного хранения и обмена данными.
Пример с ViewModel:
class SharedViewModel : ViewModel() {
val selectedItem = MutableLiveData<String>()
}
// В первом фрагменте
sharedViewModel.selectedItem.value = "Данные для передачи"
// Во втором фрагменте
sharedViewModel.selectedItem.observe(viewLifecycleOwner) { data ->
// Обработка полученных данных
}
Этот способ считается современным и удобным для обмена данными между фрагментами в рамках одной Activity.