1

的活動我有重新創建主題變化

我有一個主要的活動和設置一個活動。用戶可以從主要活動移動到設置。在設置活動中,用戶可以選擇應用程序的主題。現在我有一個主要的應用程序的活動。

當用戶選擇主題時,我已完成並重新啓動該活動以立即反映更改。

但是,當用戶按下後退按鈕他被帶到主要活動。

的問題

onResume()方法被調用,而不是onCreate()。所以onCreate()上的setTheme()方法也不會被調用。所以主題的變化並沒有體現在這裏。那麼我應該怎麼做才能將theme更改爲main activity

我基本上需要確保在發生主題變化時始終調用main activityonCreate()

回答

0
onResume()方法

調用recreate()recreate link

@Override 
protected void onResume() { 
// TODO Auto-generated method stub 
    ........... 
    recreate(); 
} 
0

嘗試使用boolean

public class MainActivity extends Activity { 
    public boolean toBeRecreated; 

    @Override 
    public void onResume() { 
     if (toBeRecreated) { recreate(); } 
    } 
} 

當然你需要設置MainActivity.toBeRecreated = true當用戶改變你的主題。

+0

嘗試在onResume()上重新創建()。我得到這些,嘗試調用空對象引用 –

+0

虛擬方法'java.lang.Object android.support.v4.app.FragmentActivity.getSystemService(java.lang.String)'請用您的代碼和您的代碼編輯您的問題完整的堆棧跟蹤。 – natario

+0

如果我在設置活動的onBackPressed()中使用NavUtils.navigateUpfromSameTask(),它會起作用嗎?它似乎解決了我的問題,但我不確定。 –