我有这个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类只有两个字段,nameid。谢谢。

最佳答案

您需要的是一个简单的mapTransformation.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());
        });
    }

07-28 04:24