Junior — Middle
Navigatsiya paytida ikki fragment o'rtasida ma'lumot almashish uchun bir xil ViewModeldan foydalanish mumkinmi?
sobes.tech AI
AIdan javob
Ha, mumkin foydalanish mumkin bir ViewModel uchun ma'lumot almashinuvi o'rtasida ikki fragmentlar navigatsiya paytida, agar ViewModel umumiy hayot aylanishi egasiga, masalan, Activity ga bog'langan bo'lsa. Bu holda, ikkala fragment ham bir xil ViewModel ga kirishadi, bu ularga ma'lumotlarni to'g'ridan-to'g'ri bog'lamasdan almashish imkonini beradi.
Misol:
// Activity bilan bog'langan ViewModel ni olish
val sharedViewModel = ViewModelProvider(requireActivity()).get(SharedViewModel::class.java)
// Fragment A ma'lumotlarni o'rnatadi
sharedViewModel.someData.value = "Fragment A dan Salom"
// Fragment B o'zgarishlarni kuzatadi
sharedViewModel.someData.observe(viewLifecycleOwner) { data ->
// Olingan ma'lumotlardan foydalaning
}
Shunday qilib, ViewModel fragmentlar o'rtasida umumiy ma'lumot manbai sifatida xizmat qiladi, muloqotni soddalashtiradi va konfiguratsiya o'zgarishlarida ma'lumotlarni saqlaydi.