Кадом усулҳо ва татбиқҳои модели ViewModel-ро мешиносӣ?
sobes.tech AI
Ҷавоб аз AI
Дархости ViewModel дар Android барои нигоҳ доштани ва идора кардани маълумоти UI бо назардошти давраи ҳаёти компонентҳо, ба мисли Activity ё Fragment истифода мешавад. Равишҳо ва татбиқҳо асосӣ:
-
Android Architecture Components ViewModel — синфи аз китобхонаи androidx.lifecycle, ки имкон медиҳад маълумотҳоро ҳангоми такрорсозии Activity/Fragment нигоҳ дорад (масалан, ҳангоми гардиши экран). ViewModel то он даме зинда мемонад, ки компонент UI зинда аст.
-
ViewModel бо LiveData — аксар вақт, ViewModel дорои LiveData аст, то ки UI автоматӣ навсозӣ шавад вақте ки маълумот тағйир меёбад.
-
ViewModel фармоишӣ — шумо метавонед модели худи ViewModel-ро татбиқ кунед, логика ва маълумотро аз UI ҷудо кунед, аммо бе истифодаи AndroidX, масалан, дар MVVM тоза.
Масалан истифодаи стандартии ViewModel бо LiveData:
class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> = _data
fun loadData() {
// боркунӣ маълумот, масалан, аз репозитория
_data.value = "Масали маълумот"
}
}
// Дар Activity ё Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
textView.text = value
}
viewModel.loadData()