从ViewModel通知活动

问题描述 投票:0回答:2

我是MVVM android的新手,我想制作一个简单的Login表单,其中包含2个电子邮件和密码输入字段,1个Login按钮和1个progressbar。我正在使用viewmodel从XML使用绑定和onclick绑定捕获电子邮件/密码的值,以及调用viewmodel的onclick函数。因此,基本上,viewmodel现在正在侦听XML中的所有内容。

[我的问题是,我想在登录过程中显示一个进度条,因此想从viewmodel通知活动类,“嘿,用户只需单击该登录按钮,显示进度条我们正在进行登录过程”或“嘿,现在,因为登录已完成,请导航至仪表板”或“嘿,我们有一个错误,显示一个错误alertdialog”。

我可以使用接口来包装活动并将其传递给viewmodel,然后调用其方法,但是我不想使用该方法,因为我认为它不是MVVM。我应该在viewmodel中创建一个Status变量,然后从活动中观察它吗?

那么这里的解决方案是什么?

android mvvm android-mvvm
2个回答
0
投票

0
投票
var btnClicked:MutableLiveData<Boolean> = MutableLivedata<Boolean>()

在您的点击功能中使用此

fun onClick(){
  btnClicked.value = true
}

然后在活动中使用此代码显示进度条。

viewModel.btnClicked.observe(this, Observer {
        showProgressbar();//You funtion to show the progress bar
    })
© www.soinside.com 2019 - 2024. All rights reserved.