2016-05-15 44 views
0

我實現了PreferenceActivity,我允許用戶更改應用程序的主題。當該設置的開關翻轉時,最初沒有任何反應。在按下的向上按鈕上執行什麼方法

當按下Up button時,我將轉到父活動並重新加載主題以使用新主題。但是,如果我仍然處於SettingsActivity並按下Back按鈕,我會回到MainActivity,但未應用新主題。在這種情況下,我認爲MainActivity不會重新加載onCreate()

我想只有SettingsActivityoverride the Back按鈕的行爲,我知道怎麼樣,但我不知道爲了模仿向上按鈕按下執行行爲什麼方法。

任何想法?

+0

「上按鈕」是什麼意思?它是您添加的自定義按鈕嗎? – AkashBhave

+0

這是代替主頁按鈕的向上箭頭,當按下時,您將轉到父活動。 – iBobb

回答

1

如果家長的活動是你控制的東西,只需重新按下後退按鈕。你可以這樣做:

@Override 
public void onBackPressed() { 
    // Replace "ParentActivity.class" with the name of your parent activity 
    Intent parentIntent = new Intent(getApplicationContext(), ParentActivity.class); 
    startActivity(parentIntent); 
} 

上面的代碼應該覆蓋後退按鈕,並給你你想要的結果。

+0

哈哈哇謝謝,我沒有意識到它可能是那麼簡單...只是一點點的offtopic澄清,我們什麼時候使用finish();與startActivity一起?或者我們只使用finish()如果我們有一個運行在這個後面的活動? – iBobb

+1

很高興幫助!爲了回答你的問題,他完成()活動基本上調用你的Intent所要執行的活動的onDestroy()方法。所以你真的不需要使用完成,因爲它會停止活動。 – AkashBhave

+0

不幸的是,這引入了一個討厭的bug。如果我從MainActivity進入Settings並按Back按鈕,MainActivity會再次啓動。如果我按下「後退」按鈕,我會再次進入設置。返回按鈕>主屏幕。後退按鈕>設置屏幕......並且卡在這個循環中。 – iBobb

相關問題