我有一个简单的课程
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;
}
所以问题是如何将一个liveata转换成另一个liveata?
答案 0 :(得分:0)
使用Transformations将一个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
});