我有这个ViewModel类:
public class MyViewModel extends ViewModel {
private MyRepository myRepository;
public MyRepository() {
myRepository = new MyRepository();
}
LiveData<List<String>> getUsersLiveData() {
LiveData<List<User>> usersLiveData = myRepository.getUserList();
return Transformations.switchMap(usersLiveData, userList -> {
return ??
});
}
}
在
MyRepository
类中,我有一个返回getUserList()
对象的方法LiveData<List<User>>
。我如何将该对象转换为LiveData<List<String>>
,该对象基本上应包含字符串列表(用户名)。我的User
类只有两个字段,name
和id
。谢谢。 最佳答案
您需要的是一个简单的map
。 Transformation.switchMap
用于连接到其他LiveData
。例:
LiveData<List<String>> getUsersLiveData() {
LiveData<List<User>> usersLiveData = myRepository.getUserList();
return Transformations.map(usersLiveData, userList -> {
return userList.stream().map(user -> user.name).collect(Collectors.toList());
});
}