我需要使用LiveData对象基于AttendanceData
的更改来准备classId
类型的列表。
此代码块按预期工作正常。
// Get the section attendance data when classId is changed
public LiveData<List<AttendanceData>> getSectionLiveDataList(int classId) {
// use switchMap when you need data from another set of liveData object
final LiveData<List<SectionModel>> dataModelsLiveD =
schoolSectionRepository.getAllSectionNames(classId);
return Transformations.switchMap(dataModelsLiveD,
newData -> getAttendanceLiveData(newData));
}
但是当使用这种方法时,我无法从网络调用的LiveData<Integer>totalCount
中获得价值。
final MutableLiveData<List<AttendanceData>> liveItems=new MutableLiveData<>();
private LiveData<List<AttendanceData>> getAttendanceLiveData(List<SectionModel> sectionModelList) {
AttendanceData attendanceData=new AttendanceData();
List<AttendanceData> attendanceDataList=new ArrayList<>();
for (SectionModel item : sectionModelList) {
final LiveData<Integer> totalCount=mRepository.getTotalNumberOfPresentStudent(date,item.getID().toString());
attendanceData.setSectionModel(item);
attendanceData.setTotalPresentCount(totalCount.getValue().toString());
attendanceDataList.add(attendanceData);
}
liveItems.postValue(attendanceDataList);
return liveItems;
}
我想知道我是否需要使用MediatorLiveData
并结合dataModelsLiveD
和totalCount
来获得<List<AttendanceData>>
的结合输出,还是有另一种方法可以完成此任务。
谢谢。