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.