簡體   English   中英

Java for循環中的Android處理程序計時器

[英]java android handler timer in for loop

我有4個ImageButton,我想隨機更改它們的圖像2秒鍾。 但這是行不通的。 這里有什么問題? 我不太了解Handlers的工作。 我想要:更改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);

    }

這段代碼對我有用:

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

因此,我認為問題可能出在您的代碼中。 您確定循環中的隨機數邏輯有效嗎? 為什么不先嘗試使延遲起作用,然后調試隨機部分呢? 也許問題出在您的圖像上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM