Я пытаюсь реализовать 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
.
, есть некоторый фундаментальный недостаток.