首次在android studio中编程,并试图制作认知测试Digit Span的最小可行产品。我们的想法是每隔X秒显示一个数字,当显示所有数字时,您需要按照它们出现的顺序键入正确的数字。如果你是对的,下一次运行的数量会增加。
我遇到的问题是我想对弹出的数字施加延迟。我尝试过使用处理程序,但没有成功,也没有想法。
这是一个手工制作的代码示例,该代码没有按预期工作:
handler.post(new Runnable() {
@Override
public void run() {
if(counter < difficulty) {
numberText.setText(numbersArray.get(counter) + "");
counter += 1;
handler.postDelayed(this, 600);
}else{
handler.removeCallbacks(this);
}
}
});
问题是,当处理程序延迟时,其余代码会继续运行。我想要的是整个代码在继续之前延迟X秒。 处理程序的另一个问题是,您无法访问处理程序之外的最终变量,因此计数器对我不起作用。
希望我只是一个白痴,而且我的问题只是一个简单的解决方案。
编辑:虽然我在这里,是否有可能在另一个延迟内延迟?就是我将来知道的。
答案 0 :(得分:0)
问题是代码的其余部分在处理程序延迟时继续运行
将您想要延迟的所有代码移动到方法中,并根据您的要求从跑步者调用该方法。
处理程序的另一个问题是,您无法访问处理程序之外的最终变量,因此计数器对我不起作用。
您可以将计数器变量定义为全局类字段,然后您可以从类中的任何位置访问它而不将其声明为最终变量。