如何让我的第二个进度条根据我的if语句工作?

jmo0nnb3  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(204)

我有两个进度条,一个与我的计时器同步,第二个应该在总时间内的各个时段运行。也就是说,如果总时间为8分钟,则第一个进度条将运行8分钟。第二个进度条应根据以下if语句运行:

private void startTimer()
    {
        millisInFuture = mTimeLeftInMillis;
        mCountDownTimer = new CountDownTimer(mTimeLeftInMillis, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                mTimeLeftInMillis = millisUntilFinished;
                updateCountDownText();
                long millisPassed = millisInFuture - mTimeLeftInMillis;
                progress = (int) (millisPassed * 100 / millisInFuture);
                pb.setProgress(progress);

                pb2.setProgress(0);

////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////
                    //Key: 60 sec
            if(millisInFuture == 480000) {
                if (millisPassed <= 60000) {
                    Animation animation = AnimationUtils.loadAnimation(tool1mode1.this, R.anim.fade_in);
                    stepupimage.setAnimation(animation);
                    progress2 = (int) (millisPassed * 100 / 60000);
                    pb2.setProgress(progress2);
                    if(millisPassed == 60000)
                    {
                        pb2.setProgress(0);
                    }
                } else if (millisPassed > 60000 && millisPassed <= 180000) {
                    Animation animation = AnimationUtils.loadAnimation(tool1mode1.this, R.anim.fade_in);
                    stepdownimage.setAnimation(animation);
                    progress2 = (int) (millisPassed * 100 / 120000);
                    pb2.setProgress(progress2);

代码中由反斜杠分隔的部分就是有问题的部分。大的if语句表示8分钟。其中的第一个if语句表示8分钟中的第一个1分钟。我希望后面的else if语句重新启动第二个progressbar并运行2分钟。然后,它将重新启动并运行1分钟,然后再次重新启动并运行1分钟,依此类推,直到8分钟结束。
我相信问题出在else if语句中的millispassed值上,但是我不知道用什么来替换它以使进度条重新启动并运行2分钟。
注:
pb是第一个进度条
pb2是第二个进度条

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题