Junior — Middle
FragmentManager ishlatilganda fragmentlar o'rtasida ma'lumot almashinuvi qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
FragmentManager yordamida ma'lumot almashinuvi odatda faoliyat orqali amalga oshiriladi va bu vositachi vazifasini bajaradi. Fragmentlar o'zaro bevosita muloqot qilmasligi kerak, shuning uchun ularning bog'liqligini kamroq qilish uchun.
Ma'lumot almashishning asosiy usullari:
-
Faoliyat metodlari orqali:
- Fragment ma'lumotlarni faoliyatga yuboradi (masalan, interfeys yoki to'g'ridan-to'g'ri metod chaqirish orqali).
- Faoliyat boshqa fragmentga ma'lumotlarni uzatadi, uning umumiy metodlarini chaqirish orqali.
-
ViewModel dan foydalanish, faoliyatning hayot aylanishi bilan:
- Umumiy ViewModel fragmentlarga bir xil ma'lumotlarni kuzatishga imkon beradi.
- ViewModeldagi o'zgarishlar avtomatik ravishda barcha obuna bo'lgan fragmentlarga aks etadi.
-
setFragmentResultListener va setFragmentResult dan foydalanish (Fragment 1.3.0 dan boshlab):
- Fragment FragmentManager orqali natijani yuboradi.
- Boshqa fragment bu natijalarni tinglaydi va ularga javob beradi.
setFragmentResult misoli:
// Birinchi fragmentdan natijani yuborish
setFragmentResult("requestKey", bundleOf("dataKey" to "value"))
// Boshqa fragmentda natijani tinglash
setFragmentResultListener("requestKey") { kalit, bundle ->
val natija = bundle.getString("dataKey")
// natijani qayta ishlash
}