12
我想知道是否可以使用handler()。postdelayed兩次?Android:使用處理程序post.delayed兩次
我的意思是,我想創建一個按鈕,當點擊它時,它會改變顏色並保持這種狀態1秒,然後,在1秒鐘後,另一個按鈕會改變顏色。
我創建了下面的代碼:
在onclicklistener:
btn3.setBackgroundColor(Color.WHITE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
checkAnswer();
waitAnswer();
btnRsp3.setBackgroundResource(R.drawable.selector);
}
}, 1000);
CheckAnswer:
public void CheckAnswer(){
btn1.setBackgroundColor(Color.GREEN);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
}
}, 500);
btn1.setBackgroundResource(R.drawable.selector);
}
我認爲這個問題是CheckAnswer,因爲它似乎它不停在這個postDelayed並進入waitAnswer。
謝謝
謝謝你的回答,但我不明白:如果第二個runnable在第一個終止之後執行,爲什麼它不會像更改checkAnswer類中的代碼那樣將btn更改爲綠色?它跳過這一步否? – loading27
你的第二個Runnable是空的。 checkAnswer將顏色更改爲綠色,然後將空白矩形排隊,然後設置背景資源,因此您不會看到它爲綠色 – msh
是的,但我認爲如果將顏色設置爲綠色並創建一個500毫秒的空隊列,然後再次設置背景,我看到綠色500毫秒。 – loading27