迭代一个线程/处理程序/计时器10次

时间:2014-06-22 14:31:49

标签: android multithreading loops timer handler

我想迭代一次线程10次..

 for(final int i: list)<-- problem
    {
        Timer timer = new Timer();
        TimerTask timertask = new TimerTask() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                imageView.setBackgroundResource(i);
            }
        };
        timer.schedule(timertask,200);  
    }

这段代码可以做到这一点,但是eclipse建议/坚持我是最终的......

因此只显示最后一张图片..有什么方法我可以迭代这样,所有图像都显示出来,计时器可以正确运行???

请不要推荐动画 ..它已经彻底失败了......这就是为什么我要诉诸于此......

2 个答案:

答案 0 :(得分:2)

要修复代码,您只需使用本地变量

即可
for(int i: list)<-- problem no more
{
    Timer timer = new Timer();
    TimerTask timertask = new TimerTask() {

    // create a final variable and assign it to i
    final int x = i;

        @Override
        public void run() {
            // TODO Auto-generated method stub
            imageView.setBackgroundResource(x);   // then use it here
        }
    };
    timer.schedule(timertask,200);  
}

答案 1 :(得分:1)

只需在i变量中复制final的值:

for(int i : list) {
    final int value = i;
    Timer timer = new Timer();
    TimerTask timertask = new TimerTask() {
        @Override
        public void run() {
            imageView.setBackgroundResource(value);
        }
    };
    timer.schedule(timertask,200);  
}