for循环中的java android handler timer

时间:2014-03-10 19:06:01

标签: 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) {
        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);

    }

1 个答案:

答案 0 :(得分:0)

此代码对我有用:

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

所以我认为问题可能在您的代码中的其他地方。你确定循环中的随机数逻辑是否正常工作?为什么不首先尝试延迟工作然后调试随机部分。或许问题出在您的图片上。