Simon Says for Android のようなものを実装しようとしています。これは私が持っているコードです:
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) とは異なる色です) 最初に呼び出されたとき、色を変更する必要があるボタンは 1 つだけなので、正常に動作します。2 回目に呼び出されると、2 つのボタンの色が変わるはずです。現在、私のコードは両方同時に点灯します。最初に 1 つのボタンの色を点滅させ、それを終了してから 2 番目のボタンの色を点滅させるにはどうすればよいですか? 私は何百万もの異なることを試しましたが、これはまだ私が得た最も近いものです.