我已经实现了一个计数器和第一个计数器的onFinish(),我启动了第二个计数器,但是第一个计数器无法完成。文本“ Bye Guyz”保留了一段时间,因此如何完成文本。

请帮我。

提前致谢。!!!

代码:-

counter= new CountDownTimer(10000, 1000) {

                public void onTick(long millisUntilFinished) {
                    if (count == 0) {
                        tv.setText("First counter");
                        tv2.setVisibility(View.VISIBLE);
                        tv2.setText("Hello Guyz");
                    }
                }

                public void onFinish() {
                    if(!flag) {
                        tv2.setText("Bye Guyz");
                        count = 0;
                        try {
                            counter.cancel();
                        }catch (Exception e){}
                    }
                    else if(flag) {
                       counter1 = new CountDownTimer(9000, 1000) {
                            public void onTick(long millisUntilFinished) {
                                flag = false;
                                tv.setText("Second counter");
                        tv2.setVisibility(View.VISIBLE);
                        tv2.setText("Hello Girls");
                                count = 0;
                            }

                            public void onFinish() {
                                tv2.setVisibility(View.VISIBLE);
                                tv2.setText("Bye Girls");
                                count = 0;
                            }
                        }.start();

最佳答案

您是否“调试”了代码以确保代码到达counter1 = new CountDownTimer(9000, 1000)
您确定第一个counter到达onFinish()flag变量为true吗?
当计数器显然已经结束时,为什么在counter.cancel()中调用onFinish()


public void onFinish() { if(!flag) { tv2.setText("Bye Guyz"); count = 0; try { counter.cancel(); }catch (Exception e){}}

10-04 15:00