Android LiveData преобразования - PullRequest
0 голосов
/ 01 мая 2018

у меня простой класс

public class Contacts {
    public ArrayList<Contact> items;
}

У меня есть запрос на получение модификации

LiveData<ApiResponse<Contacts>> getContacts();

, который возвращает LiveData<ApiResponse<Contacts>>, но мне нужно использовать его далее как список элементов LiveData<ApiResponse<List<Contact>>>

protected LiveData<ApiResponse<List<Contact>>> createCall() {
  LiveData<ApiResponse<Contacts>> contacts = apiService.getContacts();

  return contacts.items;
}

Итак, вопрос в том, как преобразовать одну жилату в другую жилату?

1 Ответ

0 голосов
/ 29 июня 2018

Используйте Преобразования для преобразования одной LiveData в другую.

LiveData<User> userLiveData = ...;
LiveData<String> userName = Transformations.map(userLiveData, user -> {
    user.name + " " + user.lastName
});

Для вашего случая используйте что-то вроде этого

LiveData<List<Contact>> contactList = Transformations.map(contactsLiveData, it -> {
    it.contacts() // returns list
});
...