我是编码和移动应用程序开发的相对新手,但我热衷、热情并想学习!
这是我对 SO 提出的第一个问题,如果我以我问的方式破坏了礼仪,请提前道歉。
我正在编写一个应用程序来跟踪游泳者的个人最佳时间,我几乎完成了使用 Room 查询 sql db 的编码,并使用正常的 dao、存储库和视图模型架构来返回我的游泳时间和资格赛时间。最后一步是从项目资格时间中减去游泳运动员的比赛时间。这就是我挣扎的地方!
最初,我尝试如下嵌套我的 livedata 对象,但是在内部进行算术运算时,无法访问外部 livedata。
**Code snippet:**
swimMeetViewModel.getQualificationTimes(queryQualTimes(scSwimDistance, scHKTable, swimMeetViewModel.getAgeGroup())).observe(getViewLifecycleOwner(), new Observer<List<String>>() {
@Override
public void onChanged(@Nullable List<String> qualificationTime) {
freeQual = qualificationTime.get(0);
free_qual.setText(freeQual);
swimMeetViewModel.getFastTimes(queryFastTimes(swimMeetTable, AppConstants.free, scSwimDistance, SCMEET_TRUE)).observe(getViewLifecycleOwner(), new Observer<List<String>>() {
@Override
public void onChanged(@Nullable List<String> fastTime) {
freeTime = fastTime.get(0);
free_time.setText(freeTime);
}
freeDelta.setValue(toMMSS(toMilli(freeTime) - toMilli(freeQual)));
});
}
});
在对 SO 进行了一些研究之后,我遇到了以下问题,该问题表明 mediatorlivedata 是我处理多个 livedata 源所需的工具。但是,我似乎无法使用建议的代码来解决我的问题。
任何有助于理解此代码和解释 mediatorlivedata 如何工作的帮助都将被接受。不幸的是,Android 开发者参考在这方面并不是很有帮助。
提前致谢,
伊尔