2014-11-17 40 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