2017-08-10 64 views
2

我試圖初始化我LiveData對象,並給出了錯誤: 「LiveData是抽象的,它不能被實例化」LiveData是抽象的Android

LiveData listLiveData =新LiveData <>();

+0

你是如何初始化的對象?請包括您的代碼,以便我們可以看到發生了什麼。 –

+1

恩,這是因爲'LiveData'是'abstract'。你在這裏試圖用'LiveData'做什麼?您可能需要創建「LiveData」的子類或使用「MutableLiveData」。 – CommonsWare

回答

1

因爲它是抽象的(如@CommonsWare說),你需要把它擴大到一個子類,然後在表格需要覆蓋的方法:

public class LiveDataSubClass extends LiveData<Location> { 

} 

docs for more details

1

在一個視圖模型,您可能需要使用MutableLiveData

例如爲:

class MyViewModel extends ViewModel { 
    private MutableLiveData<String> data = new MutableLiveData<>(); 

    public LiveData<String> getData() { 
    return data; 
    } 

    public void loadData() { 
    // Do some stuff to load the data... then 
    data.setValue("new data"); // Or use data.postValue() 
    } 
}