Sobes.tech
Junior — Middle

Gezinme sırasında iki fragman arasında veri alışverişi için aynı ViewModel kullanılabilir mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Evet, aynı ViewModel kullanılarak, navigasyon sırasında iki fragment arasında veri alışverişi yapılabilir, eğer ViewModel ortak bir yaşam döngüsü sahibiyle, örneğin bir Activity ile ilişkilendirilmişse. Bu durumda, her iki fragment de aynı ViewModel'e erişir ve böylece doğrudan bağlamadan veri alışverişi yapabilirler.

Örnek:

// Activity ile ilişkili ViewModel'i al
val sharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)

// Fragment A veri ayarlar
sharedViewModel.someData.value = "Fragment A'dan Merhaba"

// Fragment B değişiklikleri izler
sharedViewModel.someData.observe(viewLifecycleOwner) { data ->
    // Alınan veriyi kullan
}

Bu şekilde, ViewModel, fragmentler arasında ortak bir veri kaynağı olarak hareket eder, iletişimi basitleştirir ve yapılandırma değişiklikleri sırasında verileri korur.