android 循环内的延迟处理程序
Delay handler inside a loop in android
我正在尝试将处理程序插入到循环中,但它只会发生一次。
for(int i = 0;i<4;i++) {
btn1.setBackgroundColor(Color.RED);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000);
}
如果您希望按钮在红色和绿色之间切换并延迟 2 秒,您可以尝试这样的操作:
for(int i = 0;i<4;i++) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.RED);
}
}, 2000*2*i);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000*(2*i+1));
}
使用时
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000)
您将延迟设置为固定值。
要使按钮闪烁,延迟必须是动态的,并且每次循环迭代都会更改。
我正在尝试将处理程序插入到循环中,但它只会发生一次。
for(int i = 0;i<4;i++) {
btn1.setBackgroundColor(Color.RED);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000);
}
如果您希望按钮在红色和绿色之间切换并延迟 2 秒,您可以尝试这样的操作:
for(int i = 0;i<4;i++) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.RED);
}
}, 2000*2*i);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000*(2*i+1));
}
使用时
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 2000)
您将延迟设置为固定值。 要使按钮闪烁,延迟必须是动态的,并且每次循环迭代都会更改。