2014-11-17 41 views
2

我想在我的Android應用上實現良好的向上導航。實現向上導航

例如,我想從DetailsActivityMasterActivity。要做到這一點我使用下面的代碼:

final Intent upIntent = new Intent(this, MasterActivity.class); 
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
supportNavigateUpTo(upIntent); 

它的偉大工程,如果MasterActivity已經在後臺打開:它關閉當前活動(在堆棧上MasterActivity所有活動),並觸發方法onNewIntentMasterActivity

但是,如果MasterActivity不在堆棧中,則該方法只會簡單地關閉DetailsActivity並且不會發生任何其他情況。

我想實現的是,如果MasterActivity不在堆棧中,則當前的aActivity會關閉,並會創建一個新的MasterActivity實例。

我已經嘗試過,沒有成功,下面的標誌組合:

Intent.FLAG_ACTIVITY_SINGLE_TOP 
Intent.FLAG_ACTIVITY_CLEAR_TOP 
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP 
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK 
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK 

你有沒有在如何解決我的問題的任何想法?

非常感謝您的時間

編輯

父活動需要在運行時指定。實際上,父活動可以是ActivityA,ActivityBActivityC

讓我更好地解釋這個問題。我的應用管理電視節目。我有一個MainActivty,一個TVShowActivity,一個SeasonActivity和一個EpisodeActivity

在從每一個活動我希望能夠跳轉到父活動抽屜式導航欄:

-On EpisodeActivity我想去SeasonActivityTVShowActivityMainActivity;

-On SeasonActivity我想去TVShowActivityMainActivity;

- - TVShowActivity我想去MainActivity

我的應用程序目前工作,如果我的活動堆棧是這樣的:MainActivty =>TVShowActivity =>SeasonActivity =>EpisodeActivity

問題是,有時用戶可以直接從MainActivity到達EpisodeActivity,我希望能夠使用相同的導航模式。

+0

http://stackoverflow.com/a/12276100/3322203 試試這個我認爲你需要看看那個解決方案。 完美的例子。 –

+0

請參閱我的編輯:我需要在運行時指定父活動 – Spotlight

+0

使用Fragments,因此您可以堅持單活動 –

回答

-1

在每個你可以保持例如兩個按鈕中的XML的性能提供一個onclick事件,並提供Java類意圖碼活動:

'公共無效youronclickname(視圖V) { 意向myintent =新的意圖(你的源類,目標類); startActivity(myintent); }「

同樣與下一節課

+1

請閱讀問題!我的問題問如何正確創建意圖,而不是如何處理點擊 – Spotlight