Android中的viewModel组件

ViewModel是Jetpack中最重要的组件之一了,重要的作用是可以帮助Activity分担一部分工作,它是专门用于存放与界面相关的数据。另外,当手机横竖屏切换时,activity会被重新创建,同时存放在activity中的数据也会丢失,而ViewModel的生命周期和Activity不同,它可以保证手机在横竖屏切换时不会被重新创建,只有当activity退出时,才会跟着activity一起销毁。
一、viewModel的基本用法:

class MyViewModel:ViewModel() {
    
}

此外,不可以直接去创建ViewModel的实例,而是通过ViewModelProvider来获取ViewModel的实例。具体代码如下:

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

二、向viewModel传递参数
这需要借助viewmodelprovider.Factory实现
viewModel代码

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

MainViewModelFactory类实现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
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容