【问题标题】:Implement Up Navigation实施向上导航
【发布时间】:2014-11-17 12:32:54
【问题描述】:

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

例如,我想从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 上的所有活动)并在MasterActivity 上触发onNewIntent 方法。

但是,如果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可以是ActivityA,ActivityB或者ActivityC

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

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

-开EpisodeActivity我想去SeasonActivityTVShowActivityMainActivity

-开SeasonActivity我想去TVShowActivityMainActivity

-开TVShowActivity我想去MainActivity

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

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

【问题讨论】:

  • stackoverflow.com/a/12276100/3322203 我认为您需要查看该解决方案。完美的例子。
  • 请看我的编辑:我需要在运行时指定父Activity
  • 使用 Fragments,因此您可以坚持单个 Activity
  • 你应该使用supportShouldUpRecreateTask,正如文档所说的developer.android.com/reference/android/support/v7/app/…
  • 我不能仅仅为了实现它就完全改变我的应用程序。除此之外,我的应用真的很复杂,这样的修改需要大量的时间

标签: android android-intent up-navigation


【解决方案1】:

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

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

类似地在你的下一堂课上试试这个

【讨论】:

  • 请阅读问题!我的问题是如何正确创建 Intent,而不是如何处理点击
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-05
  • 2020-05-08
相关资源
最近更新 更多