先说一下源码:mvvm地址
前段时间在空闲的时间准备重写一下mvp,升级sdk的时候发现support包不推荐使用了......这是啥情况,不明觉厉的百度了一下才知道jetpack这么个东西。这是饭碗快没了呀,赶紧百度来一梭子代码看看到底需要什么样的神操作。
看过别人的mvvm(我是谁?我在哪?我写的啥!)
abstract class BaseActivity<VM : BaseViewModel, DB : ViewDataBinding> : AppCompatActivity() {
/**
*通过使用dataBinding时,发现dataBinding引用view可能会出现空指针,
*而var变量可以为空的声明方式就是 var a:A?=null
*/
protected lateinit var viewModel: VM
protected var mBinding: DB? = null
private var dialog: MaterialDialog? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initViewDataBinding()
//lifecycle你去观察viewmodel
lifecycle.addObserver(viewModel)
//注册 UI事件
registorDefUIChange()
//存储小数据
initView(savedInstanceState)
initData