设置文本前五秒然后开始计数

时间:2016-04-19 17:51:54

标签: android textview countdowntimer

我想在前五秒钟设置一个文本然后在屏幕上的计时器显示之后。所以计时器正在计算前五个,但直到五秒后才显示。这是我的一些代码。我有更多,但只是粘贴了倒计时器onTick-part。 timeChosen变量来自用户从1-5(分钟)中选择的内容。

new CountDownTimer(timeChosen * 60000, 1000) {

                @Override
                public void onTick(long millisUntilFinished) {


                    long millis = millisUntilFinished;
                    String hms = String.format("%02d:%02d",
                            TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                            TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));



                   if(millis+12000>=(timeChosen * 60000)){
                    System.out.println("test");
                    textTimer.setText("Do Exercise");
                }
                else
                {
                    textTimer.setText(hms);
                }

                }

1 个答案:

答案 0 :(得分:0)

这会将您的毫秒数转换为整数,因此当您想要比较它时会更精确。     TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)

试试这样的事情:

 long delayTime = 5000; //5s of delay in millisenconds
    int timeChosen = 3; //3 mins
    new CountDownTimer((timeChosen * 60000) + delayTime, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            if (delayTime == 0) {
                //Start your progressBar or do whatever you want
            }
            else
            {
                textTimer.setText(delayTime);
                delayTime--;
            }


        }
    }