Передача значения в LiveData в Android - PullRequest
0 голосов
/ 29 сентября 2018

Я новичок в разработке и знаю, что стек не для «запросов полного кода».Но я застрял и не могу найти решение.

Я использую Room базу данных, которая имеет два столбца - firstName и lastName.Я загружаю базу данных с переданным firstName параметром:

@Query("SELECT * FROM passenger WHERE firstName LIKE :firstName")
List<Passenger>getAllByName (String firstName);

Работает как положено.

Но .. Когда я хочу обновить Passenger, мне нужно заполнить данные снова, снова и снова.Приходит LiveData и observer.

Но .. setValue в LiveData является приватным, и я не могу отправить какие-либо параметры для строки запроса.Приходит MutableLiveData, но как я могу это реализовать?

1 Ответ

0 голосов
/ 15 октября 2018

@ Eduardas Похоже, что вместо этого вам нужно вернуть LiveData:

LiveData<List<Passenger>> getAllByName (String name);

И вы можете записать преобразование в ViewModel, или вы можете непосредственно наблюдать его из вашей деятельности / фрагмента.

В действии / фрагменте onCreate () или onResume ():

YourDao.getAllByName(name).observe(this, new LiveData<List<Passenger>>(){
   @Override
   public void onChanged( @Nullable List<Passenger>) {
     // update your adapter if the list isn't null
   }
});

Что-то похожее на выше.Вы можете добавить настройки в соответствии с вашим вариантом использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...