本文只记录自己使用过程中一些注意点不做具体描述
学习地址:https://juejin.im/post/6844903774025154573
https://www.jianshu.com/p/81a284969f03
1、初始化
- .无参
class MyViewModel : ViewModel() {
}
// Activity中调用
class MyActivity : AppCompatActivity() {
val model: MyViewModel by viewModels()//1
override fun onCreate(savedInstanceState: Bundle?) {
val model = ViewModelProviders.of(this).get(MyViewModel::class.java)//2
}
}
- 有参
class MyViewModel(val data:String) : ViewModel() {}
//自定义创建Factory
class MyModelFactory (val data:String):ViewModelProvider.NewInstanceFactory(){
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
return MyViewModel(data) as T
}
}
//为了方便 创建工具类
object CustomViewModelProvider {
fun providerMyModel(context: Context):MyModelFactory{
return MyModelFactory("MyModel")
}
}
//activity中初始化
private val viewModel: MyViewModel by viewModels {
CustomViewModelProvider.providerMyModel(this)
}