Ich suche nach einer Möglichkeit, das LiveData-Objekt innerhalb des ViewModel zu initialisieren. Elemente werden derzeit nur initialisiert, wenn die setQuery-Methode aus der Aktivität aufgerufen wird.Initialisiere LiveData In AndroidViewModel
public class MyListViewModel extends AndroidViewModel {
private final LiveData <List<Item>> items;
private final MutableLiveData<String> query = new MutableLiveData<>();
private MyDatabase db;
public MyListViewModel(Application application) {
super(application);
db = MyDatabase.getInstance(application);
items = Transformations.switchMap(query, (search)->{
if (search == null || search.trim().length() == 0) {
return db.itemDao().getAllItems();
} else {
return db.itemDao().findItemsBySearchTerm(search);
}
});
}
public LiveData<List<Item>> getItems() {
return items;
}
public void setQuery(String queryText) {
query.setValue(queryText);
}
}
versuchen, die 'setQuery Aufruf („“)' unter Artikel Transformation Initialisierung, so dass Sie ersten Aufruf von Aktivität vermeiden können – adityakamble49