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

您对如何解决我的问题有任何想法吗?

非常感谢您的时间

编辑

需要在运行时指定父 Activity。其实父Activity可以是ActivityAActivityB或者ActivityC

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

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

-OnEpisodeActivity我想去SeasonActivity,TVShowActivityMainActivity;

-SeasonActivity在我想去TVShowActivityMainActivity;

-TVShowActivity我想去MainActivity

如果我的 Activity 堆栈类似于:MainActivty=> TVShowActivity=> SeasonActivity=> ,我的应用程序当前可以工作EpisodeActivity

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

4

1 回答 1

-1

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

` public void youronclickname(View v) { Intent myintent = new Intent(你的源类,到目标类); 开始活动(我的意图);} '

同样在你的下一堂课上试试这个

于 2014-11-17T13:11:40.790 回答