我正在尝试在Android应用程序上实现良好的Up导航。

例如,我想从DetailsActivity转到MasterActivity。为此,我使用以下代码:

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


如果MasterActivity已在后台打开,则效果很好:它将关闭当前活动(以及堆栈中所有活动在MasterActivity上),并在onNewIntent上触发方法MasterActivity

但是,如果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


您是否有解决我问题的想法?

非常感谢您的时间

编辑

父活动需要在运行时指定。实际上,父活动可以是ActivityAActivityBActivityC

让我更好地解释这个问题。我的应用程序管理电视节目。我有一个MainActivty,一个TVShowActivity,一个SeasonActivity和一个EpisodeActivity

在每个活动的导航抽屉中,我希望能够跳转到父活动:

-在EpisodeActivity上,我想转到SeasonActivityTVShowActivityMainActivity

-在SeasonActivity上,我要进入TVShowActivityMainActivity

-在TVShowActivity上,我要转到MainActivity

如果我的活动堆栈类似于:MainActivty => TVShowActivity => SeasonActivity => EpisodeActivity,则我的应用当前可以正常工作。

问题在于,有时用户可以直接从EpisodeActivity到达MainActivity,而我希望能够使用相同的导航模式。

最佳答案

在每个活动上,您可以保留两个按钮,例如,两个按钮在其xml属性中提供onclick事件,并在java类中提供意图代码:

`public void youronclickname(View v)
    {
    Intent myintent = new Intent(您的源类,到目标类);
    startActivity(myintent);
    }'

同样地在下一堂课上尝试

07-24 09:26