Я использую эту функцию, чтобы изменить фон на таймере. Я пытаюсь сделать игру Simon, но каждый раз, когда вызывается функция, она дублирует себя.
private void mostrar(final int[] dados, final int quant) {
switch (dados[pos]) {
case 1:
vermelho.setBackgroundResource(R.drawable.ic_vermelhoanimado);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG, "mostrar: " + quant +" -> " + pos +" ->" + dados[pos]);
vermelho.setBackgroundResource(R.drawable.ic_vermelho);
if((pos+1)<quant){
pos++;
mostrar(dados,quant);
}else{
ativarBotoes(quant);
}
}
}, 1000);
case 2:
amarelo.setBackgroundResource(R.drawable.ic_amareloanimado);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG, "mostrar: " + quant +" -> " + pos +" ->" + dados[pos]);
amarelo.setBackgroundResource(R.drawable.ic_amarelo);
if((pos+1)<quant){
pos++;
mostrar(dados,quant);
}else{
ativarBotoes(quant);
}
}
}, 1000);
case 3:
azul.setBackgroundResource(R.drawable.ic_azulanimado);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG, "mostrar: " + quant +" -> " + pos +" ->" + dados[pos]);
azul.setBackgroundResource(R.drawable.ic_azul);
if((pos+1)<quant){
pos++;
mostrar(dados,quant);
}else{
ativarBotoes(quant);
}
}
}, 1000);
case 4:
verde.setBackgroundResource(R.drawable.ic_verdeanimado);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG, "mostrar: " + quant +" -> " + pos +" ->" + dados[pos]);
verde.setBackgroundResource(R.drawable.ic_verde);
if((pos+1)<quant){
pos++;
mostrar(dados,quant);
}else{
ativarBotoes(quant);
}
}
}, 1000);
}
}'''
это logcat:
2020-01-26 18: 53: 35.546 15173-15173 / pt.ipp.estg.cmu D / Ограничения: mostrar: 5 -> 0 -> 4 2020-01-26 18: 53: 36.551 15173-15173 / pt.ipp.estg.cmu D / Ограничения: mostrar: 5 -> 1 -> 4 2020-01-26 18: 53: 37.557 15173-15173 / pt.ipp.estg.cmu D / Ограничения: mostrar: 5 -> 2 -> 2 2020-01-26 18: 53: 37.558 15173-15173 / pt.ipp.estg.cmu D / Ограничения: mostrar: 5 -> 3 -> 4 2020-01-26 18: 53: 37.562 15173-15173 / pt.ipp.estg.cmu D / Ограничения: Mostrar: 5 -> 4 -> 1 2020-01-26 18: 53: 38.560 15173-15173 / pt.ipp.estg.cmu D / Ограничения: Mostrar: 5 -> 4 -> 1 2020-01 -26 18: 53: 38.560 15173-15173 / pt.ipp.estg.cmu D / Ограничения: Mostrar: 5 -> 4 -> 1 2020-01-26 18: 53: 38.575 15173-15173 / pt.ipp.estg .cmu D / Ограничения: мост: 5 -> 4 -> 1 2020-01-26 18: 53: 38.578 15173-15173 / pt.ipp.estg.cmu D / Ограничения: мост: 5 -> 4 -> 1 2020 -01-26 18: 53: 38,579 15173-15173 / pt.ipp.estg.cmu D / Ограничения : mostrar: 5 -> 4 -> 1
предполагается, что он появляется только 5 раз, но всегда появляется больше