Android 如何将数字添加到倒计时计时器中,使其在每次完成时都计数不同的数字?
基本上我已经用android做了一个倒计时,倒计时类,一个文本视图和一个按钮。一切都很好 我的问题是,我想我的倒计时计时器改变它的时间,每次一个倒计时已经完成 例如:倒计时计时器从5分钟开始倒计时,现在,一旦倒计时结束,我希望倒计时自动重新开始,但从不同的时间开始,比如说1分钟,然后继续这样 所以应该是5分钟,1分钟,2分钟,30秒,然后停止。以下是时间的定义方式:Android 如何将数字添加到倒计时计时器中,使其在每次完成时都计数不同的数字?,android,countdown,Android,Countdown,基本上我已经用android做了一个倒计时,倒计时类,一个文本视图和一个按钮。一切都很好 我的问题是,我想我的倒计时计时器改变它的时间,每次一个倒计时已经完成 例如:倒计时计时器从5分钟开始倒计时,现在,一旦倒计时结束,我希望倒计时自动重新开始,但从不同的时间开始,比如说1分钟,然后继续这样 所以应该是5分钟,1分钟,2分钟,30秒,然后停止。以下是时间的定义方式: counter = new CountDownTimer(300000, 1000) { public
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循环中遍历数组数字。它工作了,只是循环没有等到它从数组中得到的数字完成倒计时,所以它非常快地循环到数组的末尾,然后倒计时数组中的最后一个数字。给我一秒钟,我将用一个例子更新主线程。