Android'da Fragmentlar o'rtasida ma'lumot almashish uchun qanday usullar qo'llaniladi?
sobes.tech AI
AIdan javob
Androidда Fragmentлар орасида маълумот алмашиш бир неча усул билан амалга оширилиши мумкин:
-
Activity орқали — фрагментлар ота-она Activity орқали мулоқот қилади, у орқали маълумотлар ўтказилади. Масалан, бир фрагмент Activityнинг методини чақириб, маълумотларни ўтказади, ва Activity уларни бошқа фрагментга ўтказади.
-
Activityнинг ҳаёт цикллари билан ViewModelдан фойдаланиш — умумий ViewModel, Activity билан боғланган, LiveData орқали фрагментлар ўртасида маълумот алмашиш имконини беради.
-
Интерфейслардан фойдаланиш — фрагмент маълумотларни ўтказиш учун интерфейсни аниқлайди, у Activity томонидан амалга оширилади.
-
EventBus ёки бошқа ҳодиса китобхоналари — компонентлар орасида ҳодисаларни юборишга имкон беради.
ViewModel билан мисол:
class SharedViewModel : ViewModel() {
val selected = MutableLiveData<String>()
fun select(item: String) {
selected.value = item
}
}
// Fragment Aда
viewModel.select("Маълумотлар")
// Fragment Bда
viewModel.selected.observe(viewLifecycleOwner) { data ->
// маълумотларни қайта ишлаш
}