// 显示数据 showRecvData(northDataMsg+guideDataMsg, false); // 更新进度条 int progressValueR = 0; if(runFlag==5 || runFlag==10){ progressValueR = 100; progressFlag = false; }else{ progressValueR = (progressValue/21); // 大概2000帧多一点可以寻北完成 if(progressValueR<0) progressValueR = 0; if(progressValueR>=100) progressValueR=98; } setProgressValue(progressValueR); } }解释每一句代码
时间: 2024-02-15 18:28:26 浏览: 62
这段代码用于更新界面显示,具体解释如下:
1. 调用 showRecvData 方法,显示接收到的数据 northDataMsg 和导航结果 guideDataMsg,第二个参数为 false 表示不需要追加显示。
2. 根据 runFlag 变量的值更新进度条 progressValueR 的值。如果 runFlag 为 5 或 10,则表示进度已经完成,将 progressValueR 设置为 100,并将 progressFlag 设置为 false。否则,将 progressValueR 设置为 progressValue/21,表示已经完成的帧数占总帧数的比例,其中 progressValue 的最大值为 21,大概表示寻北过程需要 2000 多帧才能完成。如果 progressValueR 小于 0,则将其设置为 0;如果大于等于 100,则将其设置为 98。
3. 最后调用 setProgressValue 方法,更新界面的进度条显示。
相关问题
在android studio 中 // 显示数据 showRecvData(northDataMsg+guideDataMsg, false); // 更新进度条 int progressValueR = 0; if(runFlag==5 || runFlag==10){ progressValueR = 100; progressFlag = false; }else{ progressValueR = (progressValue/21); // 大概2000帧多一点可以寻北完成 if(progressValueR<0) progressValueR = 0; if(progressValueR>=100) progressValueR=98; } setProgressValue(progressValueR); Log.i(TAG,"Progress value" +progressValueR); }显示进度条,为啥程序运行进度条不走,打印出来的值为0
根据代码中的逻辑,进度条的值是根据变量 progressValueR 来计算的,而 progressValueR 的值是根据变量 progressValue 计算得出的。所以,你需要检查一下 progressValue 变量的值是否被正确地更新了。如果 progressValue 变量没有被正确地更新,那么就会导致 progressValueR 始终为0,从而导致进度条不动的问题。你可以在代码中添加一些日志来打印 progressValue 的值,从而找到问题所在。
runFlag = 0; Log.d(TAG,"RUNFLAG VALUE..."+ runFlag); return; } if(progressFlag){ progressValue++; } double pos[] = {lat, 400}; // 纬度通过输入,高度400 }catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(); } // 显示数据 showRecvData(northDataMsg+guideDataMsg, false); // 更新进度条 int progressValueR = 0; if(runFlag==5 || runFlag==10){ Log.i(TAG,"runFlag value" +runFlag); progressValueR = 100; progressFlag = false; }else{ progressValueR = (progressValue/21); // 大概2000帧多一点可以寻北完成 if(progressValueR<0) progressValueR = 0; if(progressValueR>=100) progressValueR=100; } setProgressValue(progressValueR); Log.i(TAG,"Progress value" +progressValueR); }
这段代码中,首先判断 `runFlag` 的值是否为 0,如果是,则直接返回,否则更新进度条。在更新进度条时,如果 `runFlag` 的值为 5 或 10,则将进度条的值设置为 100,并将 `progressFlag` 的值设置为 false。如果 `runFlag` 的值不为 5 或 10,则计算出进度条的值,并将其赋给 `progressValueR`。最后,调用 `setProgressValue()` 方法设置进度条的值,并在日志中记录进度条的值。
这段代码中还包括了一些异常处理,如果出现了 `ArrayIndexOutOfBoundsException` 异常,则将其打印出来。在显示数据时,调用了 `showRecvData()` 方法将数据显示在界面上。
阅读全文