我正在尝试为 Android 实现类似 Simon Says 之类的东西。这是我的代码:
for(int i = 1; i <= sequence.size(); i++){
handler.postDelayed(new Runnable(){
public void run(){
if (sequence.peek() == 1){
green.setPressed(true);
handler.postDelayed(new Runnable(){
public void run(){
green.setPressed(false);
}
}, 1000);
}
else if (sequence.peek() == 2){
red.setPressed(true);
handler.postDelayed(new Runnable(){
public void run(){
red.setPressed(false);
}
}, 1000);
}
else if (sequence.peek() == 3){
yellow.setPressed(true);
handler.postDelayed(new Runnable(){
public void run(){
yellow.setPressed(false);
}
}, 1000);
}
else if (sequence.peek() == 3){
blue.setPressed(true);
handler.postDelayed(new Runnable(){
public void run(){
blue.setPressed(false);
}
}, 1000);
}
int myNum = sequence.peek();
sequence.poll();
sequence.add(myNum);
}
}, 1000);
}
}
基本上,我有一个队列(序列),其中包含闪烁按钮颜色的模式。(setPressed(true) 与 setPressed(false) 颜色不同) 第一次调用时,只有一个按钮需要更改颜色,因此可以正常工作。第二次调用时,2 个按钮颜色应该改变。我现在的代码将同时点亮两者。我如何使它首先闪烁一种按钮颜色,完成它,然后闪烁第二种按钮颜色?我已经尝试了一百万种不同的东西,这仍然是我得到的最接近的。