java android处理程序for循环中的计时器
我有4个ImageButton,我想随机更改它们的图像2秒钟。但它不起作用。这里有什么问题?我真的不太理解处理者的工作。 我想: 更改buttonimage的图像, 等5秒钟, 更改回buttonimage的图像java android处理程序for循环中的计时器,java,android,loops,timer,handler,Java,Android,Loops,Timer,Handler,我有4个ImageButton,我想随机更改它们的图像2秒钟。但它不起作用。这里有什么问题?我真的不太理解处理者的工作。 我想: 更改buttonimage的图像, 等5秒钟, 更改回buttonimage的图像 for (int i = 0; i < cpu_array.length; i++) { actual = cpu_rnd.nextInt(4); cpu_array[i] = actual; switch (actual) {
for (int i = 0; i < cpu_array.length; i++) {
actual = cpu_rnd.nextInt(4);
cpu_array[i] = actual;
switch (actual) {
case 0:
BlueButton.setImageResource(R.drawable.blue_a);
break;
case 1:
RedButton.setImageResource(R.drawable.red_a);
break;
case 2:
GreenButton.setImageResource(R.drawable.green_a);
break;
case 3:
PurpleButton.setImageResource(R.drawable.purple_a);
break;
default:
break;
}
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do something after 2s = 2000ms
BlueButton.setImageResource(R.drawable.blue);
RedButton.setImageResource(R.drawable.red);
GreenButton.setImageResource(R.drawable.green);
PurpleButton.setImageResource(R.drawable.purple);
}
}, 2000);
}
for(int i=0;i
这个代码对我很有用:
final Button startBookmarksButton = (Button) findViewById(R.id.start_bookmarks_button);
startBookmarksButton.setBackgroundColor(Color.BLUE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startBookmarksButton.setBackgroundColor(Color.GREEN);
}
}, 2000);
所以我认为问题可能在代码的其他地方。您确定循环中的随机数逻辑工作正常吗?为什么不先让延迟工作,然后调试随机部分呢。或者问题出在您的图像上。我认为您不希望在循环内运行,是吗?我在循环外复制了handler.postdelayed部分,但结果相同:)您说您想更改按钮图像2秒钟,在问题的第二部分说等待5秒钟?你能澄清一下吗?如果要立即将图像更改为随机,请等待2秒钟,然后再将其更改回来。或者等2秒钟换成随机,然后等5秒钟再换回来?我在学校的自动取款机上,下课后我会检查。泰。