Android为什么这行代码在for循环后执行?

时间:2015-06-19 08:22:24

标签: android for-loop imagebutton

  btnSwitch2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnSwitch2.setImageResource(R.drawable.on);
                myVib.vibrate(50);
                strobeFlash();
            }
        });

    }
 private void strobeFlash(){        
            for(int i=0; i<10;++i){
                turnOnFlash2();
                turnOffFlash2();
            }
    }

按下按钮时执行上面的代码,我想更改图像按钮的图片。但是,当按下按钮时,for循环首先执行,然后执行它上面的行

btnSwitch2.setImageResource(R.drawable.on);

执行。有没有我正在做的事情导致循环首先完全执行?

1 个答案:

答案 0 :(得分:0)

实际上,循环执行更快,然后更改图像资源。您可以在UI更新和for循环执行之间添加postDelay()。 它将解决问题。

  function findMaxSum() {
        var array = document.getElementById("array").value.split(" ").map(function(item) {
            return parseInt(item, 10);
        });
        var sumButton = document.getElementById("sum");
        sumButton.onclick = findMaxSum;
        var loopSum = 0;
        var currentMax = 0;
        for (var i = 0; i < array.length; i++) {
            loopSum += array[i];
            if (currentMax < loopSum) {
                currentMax = loopSum;
            } else if (loopSum < 0) {
                loopSum = 0;
            }
        }
        document.getElementById("answer").innerHTML = "The answer is: " + currentMax;
    }

    window.onload = findMaxSum;