有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在另一个倒计时程序中嵌套倒计时程序?

所以我有两个倒计时,我想要一个嵌套在另一个倒计时的最后。我不想使用runnable,因为我觉得它对我的应用程序不利,因为它很难取消。这在执行中似乎相当简单,但是我不断地出错

final CountDownTimer TheTimer;
    final CountDownTimer FinalTimer;

    TheTimer = new CountDownTimer((cdTime), 1000) {

        public void onTick(long millisUntilFinished) {

            button.setText(String.valueOf(millisUntilFinished));
            if(millisUntilFinished <= 10000){
                button.setVisibility(View.GONE);
            }

        }

        public void onFinish() {


            FinalTimer = new CountDownTimer(10000, 1000) {
                @Override
                public void onTick(long l) {

                }

                @Override
                public void onFinish() {

                }
            }.start();

        }
    }.start();

错误:无法为最终变量赋值

然而,Ide是告诉我让它成为最终版本的

Visual Aid

如果我让第二个计时器不是最终计时器,我会得到什么 What I get if I make the second timer not final


共 (1) 个答案

  1. # 1 楼答案

    请尝试以下代码:

    final CountDownTimer finalTimer = new CountDownTimer(1000, 1000){
        public void onTick(long l){
            //do Stuff
        }
        public void onFinish(){
            //doStuff
        }
    };    
    final CountDownTimer theTimer = new CountDownTimer((cdTime), 1000){    
        public void onTick(long millisUntilFinished){    
            button.setText(String.valueOf(millisUntilFinished));
            if(millisUntilFinished <= 10000){
                button.setVisibility(View.GONE);
            }    
        }    
        public void onFinish(){    
            finalTimer.start();    
        }
    }.start();
    

    尽可能早地设置最终变量,以确保它们已正确启动。对于未来的问题:请尽量保持代码格式良好,并提供有关问题的足够信息,如错误代码等