Sobes.tech
Junior — Middle

Кадом усулҳо ва татбиқҳои модели 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()