class 不能继承AndroidViewModel,为什么?
The class cannot inherit from the AndroidViewModel, why?
我尝试创建一个新的 class 继承自 AndroidViewModel,如下所示
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel() {}
...
但我在 ide 中收到此消息:
'android.arch.lifecycle.AndroidViewModel'
中没有可用的默认构造函数
我的会这样吗?
我的 gradle 看起来像这样:
...
implementation 'android.arch.lifecycle:extensions:1.1.1'
...
任何ide一个?
谢谢
AndroidViewModel
只有一个 public 构造函数以 Application
作为参数。您必须从构造函数中调用它:
public LoginViewModel(Application app) {
super(app);
}
https://developer.android.com/reference/android/arch/lifecycle/AndroidViewModel
子类必须有一个接受 Application 作为唯一参数的构造函数。
您需要将 super 调用添加到 AndroidViewModel class when inheriting from it. AndroidViewModel
class contains default constructor 并将 Application
class 作为变量,因此您应该更改您的实施如下:
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel(Application application) {
super(application);
// Do rest of your stuff here ...
}
...
AndroidViewModel
class 的默认实现声明:
Application
context aware ViewModel
.
Subclasses must have a constructor which accepts Application
as the
only parameter.
我尝试创建一个新的 class 继承自 AndroidViewModel,如下所示
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel() {}
...
但我在 ide 中收到此消息:
'android.arch.lifecycle.AndroidViewModel'
中没有可用的默认构造函数我的会这样吗?
我的 gradle 看起来像这样:
...
implementation 'android.arch.lifecycle:extensions:1.1.1'
...
任何ide一个?
谢谢
AndroidViewModel
只有一个 public 构造函数以 Application
作为参数。您必须从构造函数中调用它:
public LoginViewModel(Application app) {
super(app);
}
https://developer.android.com/reference/android/arch/lifecycle/AndroidViewModel
子类必须有一个接受 Application 作为唯一参数的构造函数。
您需要将 super 调用添加到 AndroidViewModel class when inheriting from it. AndroidViewModel
class contains default constructor 并将 Application
class 作为变量,因此您应该更改您的实施如下:
public class LoginViewModel extends AndroidViewModel {
public LoginViewModel(Application application) {
super(application);
// Do rest of your stuff here ...
}
...
AndroidViewModel
class 的默认实现声明:
Application
context awareViewModel
.Subclasses must have a constructor which accepts
Application
as the only parameter.