Я работаю над поиском в моем приложении. И он включает в себя две связанные таблицы в базе данных. Я новичок в комнате, и мне нужно что-то вроде этого:
viewModel.getAllImages().observe(getViewLifecycleOwner(), images -> {
for (Image i : images) {
viewModel.getAllMetadata(i.getId()).observe(getViewLifecycleOwner(), list -> {
for(Metadata m: list){
for (Metadata em : listMetadata) {
if (em.getId() == m.get() && em.getValue().equals(m.getValue())) {
imageList.add(i);
}
}
}
});
}
});
listMetadata собирается из пользовательских входов. imageList - это место, где сохраняется результат.
Вызывается при нажатии кнопки. И он работает только после второго щелчка по нему, но дает двойной результат. В первый раз он просто говорит, что imageList пуст. Второй раз, иногда он заполняется дважды, а иногда только один раз, но он работает только при втором щелчке.
Я не знаю, правильный ли это способ использования LiveData, и я бы очень признателен за такую же помощь, как сделать это.
Заранее спасибо.