2011-10-31 143 views
2

我想單擊它時更改按鈕的背景顏色。我的目標是顏色應該改變5秒,然後再改變爲另一種顏色。更改Android應用程序中按鈕的背景顏色

按鈕的原始顏色是黃色。

下面是代碼的一部分,我曾嘗試:

public void click(View view){ 
    myTestButton = (Button)view; 
    myTestButton.setBackgroundColor(Color.BLUE); 
    //*Wait lines;* 
    myTestButton.setBackgroundColor(Color.RED); 
} 

按鈕顏色變爲紅色,但從來沒有藍色。我懷疑這個視圖直到後來才刷新。我希望在等待線之前刷新按鈕。我也試過myTestButton.invalidate(),但無濟於事。

在此先感謝一些偉大的提示!

+0

問題的一部分是該視圖將在您運行的同一線程上刷新。所以它沒有得到更新的機會,直到方法結束,此時按鈕現在變爲紅色。 – Kratz

回答

2

你在「等待線」中使用什麼?我猜這裏有一個問題,因爲你的可能不會導致你的UI線程在那裏睡眠,並且這個方法(onClick)被你的UI線程調用。

我建議你使用方法View.postDelayed(Runnable action, long delayMills來做到這一點。 例子:

myTestButton.postDelayed(new Runnable() { 
    public void run() { 
     myTestButton.setBackgroundColor(Color.RED); 
    } 
} 

請注意,您在muest您的onClick方法聲明爲myTestButtonfinal

+0

謝謝!完美的幫助! – user1022419

+0

沒問題:)如果解決了問題,請將其標記爲「已接受」,以便將此問題標記爲「已解決」。 – Jong

相關問題