主要动机是非常基本的:暂停循环使UI更改,再次暂停使UI更改为动态创建的视图,并为视图手动分配ID。
Thread.sleep()不起作用
for(int i=0;i<n;i++){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
@SuppressLint("ResourceType") Button mButton = (Button) findViewById(i);
mButton.setBackgroundColor(Color.parseColor("#ABCDEF"));
}
}, 1000);
}
使用Handler也不起作用。当Handler放入循环中时,它将始终获取循环的最后一个值,即始终为n-1。
答案 0 :(得分:0)
我认为您必须清除问题,并详细说明睡眠不正常的含义>>>您是否以此方式使用它?
Thread.sleep(1000); // do nothing for 1000 miliseconds
您可以尝试
Thread.wait(sleeptime);//Sample Thread.wait(1000); 1 second sleep
但是通常延迟android中的主线程不好 参考java-delay-wait
答案 1 :(得分:0)
Handler handler = new Handler(Looper.myLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
/**
* Change UI here
*/
}
}, timeInMillisecons);