public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.rollDice:
Random ranNum = new Random();
int number = ranNum.nextInt(6) + 1;
diceNum.setText(""+number);
sum = sum + number;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
int value =(Integer)buttons[i][j].getTag();
if(value==sum){
inew=i;
jnew=j;
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
//I want to insert a delay here
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
break;
}
}
}
break;
}
}
Quiero establecer un retraso entre el comando entre cambiar el fondo. Intenté usar un temporizador de hilo e intenté usar ejecutar y atrapar. Pero no está funcionando. Probé esto
Thread timer = new Thread() {
public void run(){
try {
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
timer.start();
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
Pero solo se está cambiando a negro.
Puede usar
CountDownTimer
cuál es mucho más eficiente que cualquier otra solución publicada. También puede generar notificaciones regulares en intervalos a lo largo del camino utilizando suonTick(long)
métodoEche un vistazo a este ejemplo que muestra una cuenta regresiva de 30 segundos
fuente
Si usa retraso con frecuencia en su aplicación, use esta clase de utilidad
Uso:
fuente
Usando el
Thread.sleep(millis)
método.fuente
Si desea hacer algo en la interfaz de usuario en intervalos de tiempo regulares, una muy buena opción es usar CountDownTimer:
fuente
Respuesta del controlador en Kotlin:
1 - Cree una función de nivel superior dentro de un archivo (por ejemplo, un archivo que contenga todas sus funciones de nivel superior):
2 - Luego llámalo donde lo necesites:
fuente
Puedes usar esto:
y para el retraso en sí, agregue:
donde la
delay
variable está en milisegundos; por ejemplo establecidodelay
en 5000 para un retraso de 5 segundos.fuente
Aquí hay un ejemplo en el que cambio la imagen de fondo de una a otra con un retraso de desvanecimiento alfa de 2 segundos en ambos sentidos: desvanecimiento de 2 segundos de la imagen original en un desvanecimiento de 2 segundos en la segunda imagen.
fuente