簡體   English   中英

該類不能從AndroidViewModel繼承,為什么?

[英]The class cannot inherit from the AndroidViewModel, why?

我嘗試創建一個繼承自AndroidViewModel的新類,如下所示

public class LoginViewModel extends AndroidViewModel {

       public LoginViewModel() {}
...

但是我在思想中得到了這個信息:

android.arch.lifecycle.AndroidViewModel中沒有默認的構造函數

我發生這種情況嗎?

我的gradle看起來像這樣:

...
    implementation 'android.arch.lifecycle:extensions:1.1.1'
...

任何想法?

謝謝

AndroidViewModel只有一個將Application作為參數的公共構造函數。 您必須從構造函數調用此函數:

public LoginViewModel(Application app) {
    super(app);
}

從其繼承時,您需要向AndroidViewModel添加超級調用。 AndroidViewModel類包含將Application類作為變量的默認構造函數 ,因此您應按以下方式更改實現:

public class LoginViewModel extends AndroidViewModel {

   public LoginViewModel(Application application) {
       super(application);
       // Do rest of your stuff here ...
   }
...

AndroidViewModel類的默認實現指出:

Application上下文感知ViewModel

子類必須具有一個接受Application作為唯一參數的構造函數。

https://developer.android.com/reference/android/arch/lifecycle/AndroidViewModel

子類必須具有一個接受Application作為唯一參數的構造函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM