java android处理程序for循环中的计时器

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) {

我有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) {
        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秒钟再换回来?我在学校的自动取款机上,下课后我会检查。泰。