EventDao
@Dao
public interface EventDao {
@Query("SELECT * FROM events WHERE date_start = :date")
LiveData<List<EventPatientLocation>> test(Date date);
}
EventRepository
public class EventRepository {
private EventDao eventDao;
public EventRepository(Application application) {
MyDatabase db = MyDatabase.getDatabase(application);
eventDao = db.eventDao();
}
public LiveData<List<EventPatientLocation>> test(Date date) {
return eventDao.test(date);
}
EventViewModel
public class EventViewModel extends AndroidViewModel {
private EventRepository repository;
public EventViewModel(@NonNull Application application) {
super(application);
repository = new EventRepository(application);
}
public LiveData<List<EventPatientLocation>> test(Date date) {
return repository.test(date);
}
}
Фрагмент (onActivityCreated)
eventViewModel = ViewModelProviders.of(activity).get(EventViewModel.class);
LiveData<List<EventPatientLocation>> testEvent = eventViewModel.test(new Date());
testEvent.observe(activity, events -> {
// events is always null!
});
Несмотря на то, что обратный вызов onChanged для фрагмента вызывается несколько раз, список событий всегда равен нулю ... Я точно знаю, что в базе данных есть строки-кандидаты для запроса, так где же я делаю неправильно? Помогите пожалуйста ...