J'essaye de créer une nouvelle classe qui hérite d'AndroidViewModel, comme ceci
... implementation 'android.arch.lifecycle:extensions:1.1.1' ...
Mais je reçois ce message dans l'ide:
Il n'y a pas de valeur par défaut constructeur disponible dans 'android.arch.lifecycle.AndroidViewModel'
Est-ce que ça se passe?
Mon diplôme ressemble à ceci:
public class LoginViewModel extends AndroidViewModel { public LoginViewModel() {} ...
3 Réponses :
AndroidViewModel
n'a qu'un seul constructeur public qui prend une Application
comme paramètre. Vous devez appeler cela depuis votre constructeur:
public LoginViewModel(Application app) { super(app); }
https://developer.android.com/reference/android/arch / lifecycle / AndroidViewModel
Les sous-classes doivent avoir un constructeur qui accepte Application comme seul paramètre.
Vous devrez ajouter un appel super à classe AndroidViewModel lors de l'héritage de celle-ci. La classe Implémentation par défaut de la classe Les sous-classes doivent avoir un constructeur qui accepte AndroidViewModel
contient constructeur par défaut a> ayant la classe Application
comme variable, vous devez donc modifier votre implémentation comme ci-dessous: public class LoginViewModel extends AndroidViewModel {
public LoginViewModel(Application application) {
super(application);
// Do rest of your stuff here ...
}
...
AndroidViewModel
déclare que:
Application
sensible au contexte ViewModel
. Application
comme
seul paramètre.