2017-08-10 11 views
2

抽象アンドロイドです:LiveDataは私LiveDataオブジェクトを初期化しようと、それはエラーになります

LiveData listLiveData =新しいLiveData <>(「LiveDataが抽象的である、それはインスタンス化することはできません」);

+0

どのようにあなたのオブジェクトを初期化していますか?何が起こっているのかを確認できるようにコードを含めてください。 –

+1

umです。これは、 'LiveData'が' abstract'であるためです。あなたはここで 'LiveData'で何をしようとしていますか? 'LiveData'のサブクラスを作成するか、' MutableLiveData'を使用する必要があります。 – CommonsWare

答えて

1

それはあなたがサブクラスにそれを拡張して、フォームに必要に応じてメソッドをオーバーライドする必要があります(@CommonsWareが言うように)抽象的なので:

public class LiveDataSubClass extends LiveData<Location> { 

} 

は、ViewModelにで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() 
    } 
} 
関連する問題