loa*_*g27 12 android delay handler postdelayed
我想知道是否可以使用handler().postdelayed两次?
我的意思是,我想创建一个按钮,单击它时会更改颜色并保持此状态1秒,然后,1秒后另一个按钮更改颜色.
我创建了以下代码:
在onclicklistener中:
btn3.setBackgroundColor(Color.WHITE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
checkAnswer();
waitAnswer();
btnRsp3.setBackgroundResource(R.drawable.selector);
}
}, 1000);
Run Code Online (Sandbox Code Playgroud)
检查答案:
public void CheckAnswer(){
btn1.setBackgroundColor(Color.GREEN);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
}
}, 500);
btn1.setBackgroundResource(R.drawable.selector);
}
Run Code Online (Sandbox Code Playgroud)
我认为问题出现在CheckAnswer上,因为它看起来并没有停留在这个postDelayed中并且步入waitAnswer.
谢谢
msh*_*msh 20
为什么你期望它在postDelayed上停止?postDelayed将Runnable放入Handler Looper队列并返回.由于两个处理程序都是在同一个looper上创建的,所以第二个runnable在第一个终止后执行(加上500 ms延迟的剩余时间)
更新:
你需要这样的东西
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundColor(Color.GREEN);
}
}, 1000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
btn1.setBackgroundResource(R.drawable.selector);
}
}, 2000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41777 次 |
| 最近记录: |