美文网首页学习之鸿蒙&Android
Android中的viewModel组件

Android中的viewModel组件

作者: 别看后面有人 | 来源:发表于2021-07-18 13:24 被阅读0次

    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
        }
    }
    

    相关文章

      网友评论

        本文标题:Android中的viewModel组件

        本文链接:https://www.haomeiwen.com/subject/eivwpltx.html