2017-07-26 120 views
0

我想創建一個西蒙說遊戲,讓用戶知道哪些按鈕打我決定我想做一些事情就像一個按鈕點擊更改背景等待一秒鐘然後改回雖然按鈕等待1秒點擊,但提拉不會改變使用睡眠暫停方法一秒

我有什麼不正確的工作看起來是這樣的

view.setBackgroundResource(R.drawable.black); 

try { 
     TimeUnit.SECONDS.sleep(5);   
} catch(InterruptedException ex) { 
    Thread.currentThread().interrupt(); 
} 

view.setBackgroundResource(R.drawable.green); 
+1

看看處理程序:https://stackoverflow.com/a/9166354/940834。把你的代碼放在處理程序中,然後把它放回去。延遲毫秒 – Doomsknight

+0

謝謝你的處理程序做了竅門 – helloworld

回答

0

嘗試改變runOnUiThread視圖背景使視圖無效。

+1

這應該是一個評論...發佈一些有用的代碼片段OP – Akshay

1

你可以試試CountDownTimer。

// You can change millisInFuture and countDownInterval according to your need. 
long millisInFuture = 5000; 
long countDownInterval = 1000; 

new CountDownTimer(millisInFuture, countDownInterval) { 
    @Override 
    public void onTick(long l) { 

    } 

    @Override 
    public void onFinish() { 
     // Change your background color here 
     view.setBackgroundResource(R.drawable.green); 
    } 
}.start(); 
3

您可以使用Handler來實現此目的。在我的例子中,我設置了5秒的延遲,之後我通過view.setBackgroundResource(R.drawable.green);更改背景顏色。

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      view.setBackgroundResource(R.drawable.green); 
     } 
    }, 5000); 
1

您可以使用new Handler()嘗試下面的內容。

view.setBackgroundResource(R.drawable.black); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      view.setBackgroundResource(R.drawable.green); 
     } 
    }, 5000);