Android的/ Java的 - 如何做循环等待做动作 [英] Android/java - How to do that loop wait to do action
问题描述
我尝试做应用程序,它显示的元素。每个元素都开始显示时,之前的元素被隐藏。每个元素是显示2秒。 code:
I try to do app which show elements. Each element should start showing when the before element was hidden. Each element is showing 2 seconds. Code:
public void gameStart()
{
do
{
data = random.nextInt(6) + 1;
if (data == 1)
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element1.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element1.setVisibility(View.GONE);
}
}.start();
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element2.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element2.setVisibility(View.GONE);
}
}.start();
} else if (data == 3)
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element3.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element3.setVisibility(View.GONE);
}
}.start();
} else if (data == 4)
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element4.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element4.setVisibility(View.GONE);
}
}.start();
} else if (data == 5)
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element5.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element5.setVisibility(View.GONE);
}
}.start();
} else if (data == 6)
{
CountDownTimer cdt = new CountDownTimer(2000, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
element6.setVisibility(View.VISIBLE);
}
@Override
public void onFinish()
{
element6.setVisibility(View.GONE);
}
}.start();
}
id = id + 1;
text.setText("cos " + id);
} while (id < 3);
的所有元素被显示在同一时间。我尝试添加
All elements are being shown in the same time. And I try add
Thread.sleep(2500);
但这种采空窗口的作用。我尝试之后,code补充一点:
But this stoped the action in window. I try add this after code:
Timer timer = new Timer();
timer.schedule( new TimerTask() {
public void run() {
}
}, 0, 60*1000);
但环并没有留下来。我尝试用做通知()
和等待()
,但它也不起作用。
But loop wasn't stay. I try do it with notify()
and wait()
, but it also don't work.
不建议我做的做 onFinish下一个动作()
,因为这一定是重复了很多。
任何人有另一种想法?
Don't suggest me to do do next action in onFinish()
because this must be repeat a lot.
Anybody have another idea?
编辑 我还用处理器,但它不工作
EDIT I also use Handler but it don't work
推荐答案
我会建议您不要执行此code在主线程。 创建一个异步任务,其中隐藏了一个按钮和postExequte自称。
I would recommend you not to implement this code in the main thread. Create an async task, which hides a button and on postExequte calls itself.
这篇关于Android的/ Java的 - 如何做循环等待做动作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!