2014-01-24 161 views
0

我想知道如何刷新活動。不喜歡重新啓動它,但刷新它。發生了什麼是我有它,所以一個按鈕點亮,點擊後,它等待5秒鐘,然後重置按鈕,並有另一個按鈕點亮,唯一的問題是其他按鈕不亮,因爲它保持卡住同一個按鈕。我不知道這是否是代碼問題,或者我不打電話刷新等等。任何幫助都很好!謝謝。Android - 如何刷新活動

if(selected == target) { 
    Toast.makeText(getApplicationContext(), "Good job!", Toast.LENGTH_SHORT).show(); 
    view.getBackground().setColorFilter(Color.GREEN, PorterDuff.Mode.MULTIPLY); 
    } else { 
     Toast.makeText(getApplicationContext(), "Wrong!", Toast.LENGTH_SHORT).show(); 
     view.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY); 
    } 
h.postDelayed(task, millisDelay); 

那麼我的任務是這樣的:

private Runnable task = new Runnable() { 
    public void run() { 
     ResetButtons(); 
     int rnd = new Random().nextInt(buttons.length); 
     i = rnd; 
     buttons[i].getBackground().setColorFilter(Color.YELLOW, PorterDuff.Mode.MULTIPLY); 
    } 
}; 
+0

我不太瞭解。但是,你想在某些行動後改變按鈕的顏色或背景嗎? –

+0

使用runOnUiThread刷新UI。 – Hulk

+0

你也可以使用'View.invalidate()'強制視圖自己重繪。 –

回答

0

試試這個:

public void onClick (View v){ 
    Intent intent = getIntent(); 
    finish(); 
    startActivity(intent); 
} 

(OR)

這是我做的改變從返回後重新加載活動偏好改變。

@Override 
protected void onResume() { 

    super.onResume(); 
    this.onCreate(null); 
} 

這基本上導致活動重繪自己。

+0

如何在不重新啓動整個活動的情況下執行此操作?只是更新用戶界面,使其更新順利,而不是頁面關閉並再次打開? – Tyson

+0

使用'View.invalidate()'來更新UI –

+0

view.invalidate()只會在按下按鈕時更新按鈕,我需要在按下按鈕時更新按鈕,以便它自動更改不同的顏色。我想我需要使用ASync,但我不知道從哪裏開始。 – Tyson