簡體   English   中英

如果兩件事匹配,如何遍歷數組並采取措施

[英]How to loop through array and do action if two things match

經過數小時的研究,如何在此處更改生成數字的顏色

for (int rolls = 0; rolls < 4 +temp; rolls++) {
            value = (int) (Math.random() * 4 + 1);
            //Test if numbers generated are correct
            builder.append(value + " ");
            textTest.setText(builder.toString());               
            NumbersArray[rolls] = value;
            System.out.println(NumbersArray[rolls]);

我設法做到了,現在,我遇到了一個問題,他們所有人都同時改變顏色,我該怎么做,以便第一個生成的數字先亮起,等待幾秒鍾,然后下一個生成的數字就變色? 也許我正在解決這個錯誤,因為即使未生成該顏色,所有顏色也會更改

            if (rolls == 1) {
                red.setBackgroundColor(Color.parseColor("#FF0000"));
                //Wait t amount of time here
                red.postDelayed(new Runnable() {
                    public void run() {
                        red.setBackgroundColor(Color.parseColor("#FF7D0000")); /* Changes Color  */
                    }
                },3*100 /*  millisecond  to wait */);
            }
            else if (rolls == 2) {
                yellow.setBackgroundColor(Color.parseColor("#FFF000"));
                yellow.postDelayed(new Runnable() {
                    public void run() {
                        yellow.setBackgroundColor(Color.parseColor("#FF7F7500"));
                    }
                }, 3 * 100);
            }
            else if (rolls == 3) {
                green.setBackgroundColor(Color.parseColor("#0FFF00"));
                green.postDelayed(new Runnable() {
                    public void run() {
                        green.setBackgroundColor(Color.parseColor("#FF087D00"));
                    }
                }, 3 * 100 );
            }
            else  {
                blue.setBackgroundColor(Color.parseColor("#0000FF"));
                blue.postDelayed(new Runnable() {
                    public void run() {
                        blue.setBackgroundColor(Color.parseColor("#FF00007D"));
                    }
                }, 3 * 100 );
            }

整個for循環:

 for (int rolls = 0; rolls < 2 +temp; rolls++) {
            value = (int) (Math.random() * 4 + 1);
            builder.append(value + " ");
            textTest.setText(builder.toString());
            NumbersArray[rolls] = value;
            System.out.println(NumbersArray[rolls]);


            if (value == 1) {
                red.setBackgroundColor(Color.parseColor("#FF0000"));
                red.postDelayed(new Runnable() {
                    public void run() {
                        red.setBackgroundColor(Color.parseColor("#FF7D0000"));
                   }
                },3000);
            }
            else if (value == 2) {
                yellow.setBackgroundColor(Color.parseColor("#FFF000"));
                yellow.postDelayed(new Runnable() {
                    public void run() {
                        yellow.setBackgroundColor(Color.parseColor("#FF7F7500"));
                    }
                }, 3000);
            }
            else if (value == 3) {
                green.setBackgroundColor(Color.parseColor("#0FFF00"));
                green.postDelayed(new Runnable() {
                    public void run() {
                        green.setBackgroundColor(Color.parseColor("#FF087D00"));
                    }
                }, 3000 );
            }
            else  {
                blue.setBackgroundColor(Color.parseColor("#0000FF"));
                blue.postDelayed(new Runnable() {
                    public void run() {
                        blue.setBackgroundColor(Color.parseColor("#FF00007D"));
                    }
                }, 3000 );
            }

您可以嘗試使用此代碼來暫停內容更新和檢查條件的時間,此處處理程序將在沒有任何時間延遲的情況下首次運行可運行程序,之后將花費1000毫秒的時間來更新內容,並且像循環一樣運行。

final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (rolls < 2 + temp) {
                    rolls++;
                    //Do your stuff here
                    handler.postDelayed(this, 1000);
                }
            }
        }, 0);

暫無
暫無

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

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