我是MVVM体系结构的新手,我正在尝试使用MVVM和kotlin启动一个新项目。我创建了一个登录活动,并且必须将用户名和密码传递给存储库。但是,当我从按钮单击传递时,它崩溃,并且ViewModel没有零构造函数。我在项目中也使用了Dagger 2(我想这是问题所在,我缺少了一些东西)。
ViewModel
@Singleton
class LoginViewModel @Inject constructor(private val loginRepository: LoginRepository) : ViewModel() {
fun onClickLogin(username: String, password: String) {
val loginResponse: LiveData<AccessToken> = loginRepository.getAccessToken(username, password)
}
}
LoginActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val viewModel : LoginViewModel by viewModels()
btnLogin.setOnClickListener({ viewModel.onClickLogin(txtMobile.text.toString(),txtPassword.text.toString()) })
}
我看到您的LoginActivity没有将loginRepository传递给构造函数。