Android 如何将数字添加到倒计时计时器中,使其在每次完成时都计数不同的数字?

Android 如何将数字添加到倒计时计时器中,使其在每次完成时都计数不同的数字?,android,countdown,Android,Countdown,基本上我已经用android做了一个倒计时,倒计时类,一个文本视图和一个按钮。一切都很好 我的问题是,我想我的倒计时计时器改变它的时间,每次一个倒计时已经完成 例如:倒计时计时器从5分钟开始倒计时,现在,一旦倒计时结束,我希望倒计时自动重新开始,但从不同的时间开始,比如说1分钟,然后继续这样 所以应该是5分钟,1分钟,2分钟,30秒,然后停止。以下是时间的定义方式: counter = new CountDownTimer(300000, 1000) { public

基本上我已经用android做了一个倒计时,倒计时类,一个文本视图和一个按钮。一切都很好

我的问题是,我想我的倒计时计时器改变它的时间,每次一个倒计时已经完成

例如:倒计时计时器从5分钟开始倒计时,现在,一旦倒计时结束,我希望倒计时自动重新开始,但从不同的时间开始,比如说1分钟,然后继续这样

所以应该是5分钟,1分钟,2分钟,30秒,然后停止。以下是时间的定义方式:

    counter = new CountDownTimer(300000, 1000) {

        public void onTick(long millisUntilFinished) {

            tv.setText(formatTime(millisUntilFinished));

        }

        public void onFinish(){

            System.out.println("Finished");

        }

    };
300000是从5分钟开始倒计时的毫秒,1000是倒计时间隔,因此为1秒

现在的问题是:有没有办法让它从5分钟开始倒计时,然后自动从1分钟开始倒计时,然后再从2分钟开始倒计时,然后再从30秒开始倒计时

我尝试过使用数组,下面是我使用的代码,但是for循环太快了

阵列:

    int[] week1day1 = {10000, 20000, 30000};
循环:

    for (int arrayValue = -1; arrayValue < week1day1.length; arrayValue++) { 


                    maxTime = week1day1[arrayValue];    


                        counter.start();

                    tv.setText("Pause"); 

                            System.out.println("Array Value");

            }
for(int-arrayValue=-1;arrayValue
在logcat中,“Array Value”显示两次,大约10毫秒。
因此,我认为循环没有等待maxTime倒计时,因此直接循环到数组的末尾。

将其放入程序循环中:

if(counter.count == 0)
{
    switch(counterMax)
    {
        case 1: counter = new CountDownTimer(maxTime1, countDownInterval1);
        case 2: counter = new CountDownTimer(maxTime2, countDownInterval2);
        // and so on
    }
    // put your "timer picker" code here
}

希望这有帮助,可能不会像键入的那样工作(不看文档),但它应该给您一个开始。

您能发布更多的代码而不仅仅是调用构造函数吗?也许这会使帮助更容易。检查主线程,我希望这会有帮助。那个循环不会工作。如果不需要太多不同的倒计时值,那么可以为每个不同的值定义一个倒计时器。开始第一次倒计时。当它完成时,onFinish()方法也会运行,这样您就可以在它内部开始下一次倒计时了。然后在第二个倒计时计时器的onFinish()内启动第三个倒计时,依此类推。丑陋的解决方案:)谢谢!我是android编程的新手,所以我想知道是否也可以使用数组来设置maxTime?我现在要考试。顺便问一下,你所说的“//把你的“计时器选择器”代码放在这里是什么意思?你提到你想让你的计时器有几个不同的可用时间。请将您的逻辑放在此处选择这些时间。再次感谢您的回复!你说的“把你的逻辑放在这里选择这些时间”是什么意思?顺便说一下,我已经用更多的代码更新了主线程,以防它对您有所帮助。我在想,我是否可以创建一个数组并将值传递给maxTime?您可以随意执行。那部分由你决定。:)嗯,我只是尝试在for循环中遍历数组数字。它工作了,只是循环没有等到它从数组中得到的数字完成倒计时,所以它非常快地循环到数组的末尾,然后倒计时数组中的最后一个数字。给我一秒钟,我将用一个例子更新主线程。