Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要对两个livedata对象执行算术运算(减法),每个对象都是从单独的SQL查询返回的_Java_Android Livedata_Mediatorlivedata - Fatal编程技术网

Java 我需要对两个livedata对象执行算术运算(减法),每个对象都是从单独的SQL查询返回的

Java 我需要对两个livedata对象执行算术运算(减法),每个对象都是从单独的SQL查询返回的,java,android-livedata,mediatorlivedata,Java,Android Livedata,Mediatorlivedata,我对编码和移动应用程序开发相对来说是个新手,但我很热衷,很热情,很想学习 这是我提出的第一个问题,因此,如果我在提问时违反了礼仪,请提前道歉 我正在编写一个应用程序来跟踪游泳运动员的个人最佳时间,我几乎已经完成了使用Room查询sql db的编码,并使用普通dao、存储库和viewmodel体系结构来返回我的游泳时间和资格时间。最后一步是从项目资格赛时间中减去游泳运动员的比赛时间。这就是我奋斗的地方 最初,我尝试如下嵌套livedata对象,但在内部执行算术时,外部livedata无法访问 **

我对编码和移动应用程序开发相对来说是个新手,但我很热衷,很热情,很想学习

这是我提出的第一个问题,因此,如果我在提问时违反了礼仪,请提前道歉

我正在编写一个应用程序来跟踪游泳运动员的个人最佳时间,我几乎已经完成了使用Room查询sql db的编码,并使用普通dao、存储库和viewmodel体系结构来返回我的游泳时间和资格时间。最后一步是从项目资格赛时间中减去游泳运动员的比赛时间。这就是我奋斗的地方

最初,我尝试如下嵌套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)));
                    });
               }
         });
**代码片段:**
swimMeetViewModel.getQualificationTimes(查询时间(SCSwimInstance,scHKTable,swimMeetViewModel.getAgeGroup())。观察(getViewLifecycleOwner(),new Observer()){
@凌驾
更改后的公共void(@Nullable List qualificationTime){
freeQual=qualificationTime.get(0);
free_qual.setText(freeQual);
swimMeetViewModel.getFastTimes(queryFastTimes(swimMeetTable,AppConstants.free,SCSwimInstance,SCMEET_TRUE))。观察(getViewLifecycleOwner(),new Observer()){
@凌驾
更改后的公共void(@Nullable List fastTime){
freeTime=fastTime.get(0);
空闲时间.setText(空闲时间);
}
freedta.setValue(toMMSS(toMilli(freeTime)-toMilli(freeQual));
});
}
});
在深入研究之后,我遇到了以下问题,即mediatorlivedata是我处理多个livedata源所需的工具。然而,我似乎无法使用建议的代码来解决我的问题

如果您能帮助理解此代码并解释mediatorlivedata的工作原理,我们将不胜感激。不幸的是,在这方面,这项建议没有多大帮助

提前感谢,

ilh