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;
}
}
Я хочу установить задержку между командами между сменой фона. Я попытался использовать таймер потока и попытался использовать запустить и поймать. Но это не работает. Я пробовал это
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);
Но это только становится черным.
Вы можете использовать,
CountDownTimer
что гораздо эффективнее, чем любое другое опубликованное решение. Вы также можете производить регулярные уведомления через определенные промежутки времени, используя егоonTick(long)
методПосмотрите на этот пример, показывающий обратный отсчет 30 секунд
источник
Если вы часто используете задержку в своем приложении, используйте этот класс утилит
Использование:
источник
Используя
Thread.sleep(millis)
метод.источник
Если вы хотите что-то делать в пользовательском интерфейсе через регулярные промежутки времени, очень хорошим вариантом является использование CountDownTimer:
источник
Ответ обработчика в Котлине:
1 - Создайте функцию верхнего уровня внутри файла (например, файл, который содержит все ваши функции верхнего уровня):
2 - Затем позвоните туда, где вам было нужно:
источник
Вы можете использовать это:
и для самой задержки добавьте:
где
delay
переменная в миллисекундах; например, установитеdelay
5000 для 5-секундной задержки.источник
Вот пример, где я меняю фоновое изображение с одного на другое с 2-секундной задержкой альфа-затухания в обе стороны - 2-секундное затухание исходного изображения в 2-секундное затухание во 2-е изображение.
источник