Junior — Middle
Ինչպե՞ս է իրականացվում տեղեկատվության փոխանցումը Android-ում Fragment կոմպոնենտների միջև։
sobes.tech AI
Պատասխան AI-ից
Android-ում, տեղեկությունների փոխանակումը ֆրագմենտների միջև սովորաբար տեղի է ունենում նրանց պարունակող ակտիվության միջոցով կամ ընդհանուր ViewModel-ների օգնությամբ:
Հիմնական մեթոդները՝
-
Ակտիվության միջոցով:
- Ֆրագմենտ A զանգահարում է ակտիվության մեթոդը և փոխանցում տվյալներ:
- Ակտիվությունը փոխանցում է տվյալները B ֆրագմենտին:
-
Ինտերֆեյսների օգտագործում:
- Ֆրագմենտ A հայտարարում է տվյալների փոխանցման ինտերֆեյս:
- Ակտիվությունը իրականացնում է այդ ինտերֆեյսը և ստանում է տվյալները A ֆրագմենտից, ապա փոխանցում է B ֆրագմենտին:
-
Shared ViewModel (միասնական ճարտարապետական կոմպոնենտների հետ):
- Երկու ֆրագմենտներն օգտագործում են նույն ViewModel-ը, որը կապված է ակտիվության հետ:
- ViewModel-ը պարունակում է LiveData, որի միջոցով ֆրագմենտները փոխանակում են տվյալներ:
Օրինակ Shared ViewModel-ով:
class SharedViewModel : ViewModel() {
val selectedItem = MutableLiveData<String>()
}
// Ֆրագմենտ A-ում
viewModel.selectedItem.value = "Տվյալներ փոխանցելու համար"
// Ֆրագմենտ B-ում
viewModel.selectedItem.observe(viewLifecycleOwner) { data ->
// Օգտագործում ենք ստացված տվյալները
}