Java Android迷你游戏-延迟代码

Java Android迷你游戏-延迟代码,java,android,delay,handler,Java,Android,Delay,Handler,第一次在android studio中编程,并且正在尝试制作认知测试数字跨度的最小可行产品。这个想法是每X秒向你显示一个数字,当所有数字都显示出来后,你需要按照出现的顺序键入正确的数字。如果你是对的,那么下次跑步的人数会增加 我遇到的问题是,我想对突然出现的数字施加延迟。我尝试过使用处理程序,但都没有成功,也没有什么想法 下面是一个小的手工制作的代码示例,它无法按预期工作: handler.post(new Runnable() { @Override

第一次在android studio中编程,并且正在尝试制作认知测试数字跨度的最小可行产品。这个想法是每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);
                    }
                }
            });
handler.post(新的Runnable(){
@凌驾
公开募捐{
如果(计数器<难度){
numberText.setText(numbersArray.get(计数器)+“”;
计数器+=1;
handler.postDelayed(这个,600);
}否则{
handler.removeCallbacks(此);
}
}
});
问题是,当处理程序延迟时,其余代码仍在运行。我想要的是整个代码在继续之前延迟X秒。 处理程序的另一个问题是,您无法访问处理程序外部不是final的变量,因此计数器不适用于我

希望我只是个白痴,我的问题有个简单的解决办法

编辑:当我在这里的时候,是否有可能在另一个延迟中有一个延迟?只是让我知道在未来

问题是,当处理程序延迟时,其余代码仍在运行

将所有要延迟的代码移到一个方法中,并根据需要从运行程序中调用该方法

处理程序的另一个问题是,您无法访问处理程序外部不是final的变量,因此计数器不适用于我

您可以将计数器变量定义为全局类字段,然后可以从类中的任何位置访问它,而无需将其声明为最终变量

问题是,当处理程序延迟时,其余代码仍在运行

将所有要延迟的代码移到一个方法中,并根据需要从运行程序中调用该方法

处理程序的另一个问题是,您无法访问处理程序外部不是final的变量,因此计数器不适用于我


您可以将计数器变量定义为全局类字段,然后可以从类中的任何位置访问它,而无需将其声明为最终变量

您始终可以使变量成为全局变量并从句柄中调用方法始终可以使变量成为全局变量并从句柄中调用方法