Sobes.tech
Junior — Middle

Android'da Fragmentlar o'rtasida ma'lumot almashish uchun qanday usullar qo'llaniladi?

sobes.tech AI

AIdan javob

Androidда Fragmentлар орасида маълумот алмашиш бир неча усул билан амалга оширилиши мумкин:

  1. Activity орқали — фрагментлар ота-она Activity орқали мулоқот қилади, у орқали маълумотлар ўтказилади. Масалан, бир фрагмент Activityнинг методини чақириб, маълумотларни ўтказади, ва Activity уларни бошқа фрагментга ўтказади.

  2. Activityнинг ҳаёт цикллари билан ViewModelдан фойдаланиш — умумий ViewModel, Activity билан боғланган, LiveData орқали фрагментлар ўртасида маълумот алмашиш имконини беради.

  3. Интерфейслардан фойдаланиш — фрагмент маълумотларни ўтказиш учун интерфейсни аниқлайди, у Activity томонидан амалга оширилади.

  4. 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 ->
    // маълумотларни қайта ишлаш
}