![](/img/trans.png)
[英]How to access the elements of the LiveData list "Livedata<List<Model>> in Kotlin?
[英]How to transform LiveData<List<User>> to LiveData<List<String>> in ViewModel?
我有这个 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());
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.