我是MVVM android的新手,我想制作一个简单的Login表单,其中包含2个电子邮件和密码输入字段,1个Login按钮和1个progressbar。我正在使用viewmodel从XML使用绑定和onclick绑定捕获电子邮件/密码的值,以及调用viewmodel的onclick函数。因此,基本上,viewmodel现在正在侦听XML中的所有内容。
[我的问题是,我想在登录过程中显示一个进度条,因此想从viewmodel通知活动类,“嘿,用户只需单击该登录按钮,显示进度条我们正在进行登录过程”或“嘿,现在,因为登录已完成,请导航至仪表板”或“嘿,我们有一个错误,显示一个错误alertdialog”。
我可以使用接口来包装活动并将其传递给viewmodel,然后调用其方法,但是我不想使用该方法,因为我认为它不是MVVM。我应该在viewmodel中创建一个Status变量,然后从活动中观察它吗?
那么这里的解决方案是什么?
var btnClicked:MutableLiveData<Boolean> = MutableLivedata<Boolean>()
在您的点击功能中使用此
fun onClick(){
btnClicked.value = true
}
然后在活动中使用此代码显示进度条。
viewModel.btnClicked.observe(this, Observer {
showProgressbar();//You funtion to show the progress bar
})