Android中的viewModel組件

ViewModel是Jetpack中最重要的組件之一了,重要的作用是可以幫助Activity分擔(dān)一部分工作,它是專門用于存放與界面相關(guān)的數(shù)據(jù)。另外,當(dāng)手機(jī)橫豎屏切換時(shí),activity會被重新創(chuàng)建,同時(shí)存放在activity中的數(shù)據(jù)也會丟失,而ViewModel的生命周期和Activity不同,它可以保證手機(jī)在橫豎屏切換時(shí)不會被重新創(chuàng)建,只有當(dāng)activity退出時(shí),才會跟著activity一起銷毀。
一、viewModel的基本用法:

class MyViewModel:ViewModel() {
    
}

此外,不可以直接去創(chuàng)建ViewModel的實(shí)例,而是通過ViewModelProvider來獲取ViewModel的實(shí)例。具體代碼如下:

  viewModel=ViewModelProvider(this).get(MyViewModel::class.java)

二、向viewModel傳遞參數(shù)
這需要借助viewmodelprovider.Factory實(shí)現(xiàn)
viewModel代碼

class MyViewModel(count:Int):ViewModel() {
    var counter=count
}

MainViewModelFactory類實(shí)現(xiàn)ViewModelProvider.Factory接口,該接口必須create()方法,

class MainViewModelFactory(private val countResered:Int):ViewModelProvider.Factory {
    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        return MyViewModel(countResered) as T
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容