Попытка передать LiveData List в качестве аргумента - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь реализовать SearchView в своей комнате с видом SQLite Database. Приложение имеет RecyclerView с CardView, которое отображает строки из базы данных. Я пытаюсь сделать так, чтобы пользователь мог использовать SearchView для фильтрации CardView и показывать только карты, соответствующие запросу. Я следил за информацией в этом посте: Android - Реализация фильтра поиска для RecyclerView .

Так или иначе, мое приложение в настоящее время использует LiveData метод getAllFlares(), и оно возвращает все строки из базы данных. Возврат, конечно, типа LiveData. В методе фильтрации в ссылке вы передаете ArrayList в качестве аргумента методу фильтрации. Поэтому я пытался передать результаты getAllFlares() в метод фильтрации. Чтобы типы соответствовали друг другу, я изменил метод фильтрации, чтобы принимать список LiveData вместо ArrayList. Вот код, в котором я пытаюсь передать список LiveData методу фильтрации:

LiveData<List<Flare>> flare;
flare = mFlareViewModel.getAllFlares();
adapter.filterFlareList(flare);

Но это выдает эту ошибку как:

updateFlareList (java.util.List<com.android.fibrnah.Flare>) in FlareListAdapter cannot be applied to (androidx.lifecycle.LiveData<java.util.List<com.android.fibrnah.Flare>>)

Что я делаю не так? Я чувствую, что в том, что я делаю с LiveData.

, есть некоторый фундаментальный недостаток.
...