我尝试创建一个继承自AndroidViewModel的新类,像这样
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel() {}
...
但是我在想法中得到了这个消息:
'android.arch.lifecycle.AndroidViewModel'中没有默认的构造函数
这件事我发生了吗?
我的gradle看起来像这样:
...
implementation 'android.arch.lifecycle:extensions:1.1.1'
...
有什么主意吗?
谢谢
答案 0 :(得分:2)
AndroidViewModel
只有一个公共构造函数,它以Application
作为参数。您必须从构造函数中调用它:
public LoginViewModel(Application app) {
super(app);
}
答案 1 :(得分:1)
https://developer.android.com/reference/android/arch/lifecycle/AndroidViewModel
子类必须具有一个接受Application作为唯一参数的构造函数。
答案 2 :(得分:1)
从其继承时,您需要向AndroidViewModel
类包含default constructor类,其中Application
类为变量,因此您应按以下方式更改实现:
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel(Application application) {
super(application);
// Do rest of your stuff here ...
}
...
AndroidViewModel
类的默认实现表明:
Application
上下文相关ViewModel
。子类必须具有接受
Application
作为 唯一的参数。