Sobes.tech
Junior — Middle

Ինչպե՞ս է իրականացվում տեղեկատվության փոխանցումը Android-ում Fragment կոմպոնենտների միջև։

sobes.tech AI

Պատասխան AI-ից

Android-ում, տեղեկությունների փոխանակումը ֆրագմենտների միջև սովորաբար տեղի է ունենում նրանց պարունակող ակտիվության միջոցով կամ ընդհանուր ViewModel-ների օգնությամբ:

Հիմնական մեթոդները՝

  1. Ակտիվության միջոցով:

    • Ֆրագմենտ A զանգահարում է ակտիվության մեթոդը և փոխանցում տվյալներ:
    • Ակտիվությունը փոխանցում է տվյալները B ֆրագմենտին:
  2. Ինտերֆեյսների օգտագործում:

    • Ֆրագմենտ A հայտարարում է տվյալների փոխանցման ինտերֆեյս:
    • Ակտիվությունը իրականացնում է այդ ինտերֆեյսը և ստանում է տվյալները A ֆրագմենտից, ապա փոխանցում է B ֆրագմենտին:
  3. Shared ViewModel (միասնական ճարտարապետական կոմպոնենտների հետ):

    • Երկու ֆրագմենտներն օգտագործում են նույն ViewModel-ը, որը կապված է ակտիվության հետ:
    • ViewModel-ը պարունակում է LiveData, որի միջոցով ֆրագմենտները փոխանակում են տվյալներ:

Օրինակ Shared ViewModel-ով:

class SharedViewModel : ViewModel() {
    val selectedItem = MutableLiveData<String>()
}

// Ֆրագմենտ A-ում
viewModel.selectedItem.value = "Տվյալներ փոխանցելու համար"

// Ֆրագմենտ B-ում
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
    // Օգտագործում ենք ստացված տվյալները
}