从不同的子活动导航到父活动

时间:2013-12-22 18:02:48

标签: android android-intent back-stack

在我的应用中,每个活动在操作栏中都有相同的菜单,可以访问参数活动。

当我参与参数活动时,我希望通过点击左侧方向箭头来实现我的父活动。就像在我的其他活动中一样。

其他活动的唯一父级在manifest.xml中定义。

但是对于参数而言,它是不可能的,因为它有多个父母:

  • 母亲>孩子>参数是可能的
  • 母亲>参数也是可能的!

我们可以在gmail应用程序中找到这个组合:

  • main>参数,您可以在其中返回主
  • main>电子邮件>参数,您可以在其中返回您正在查看的特定电子邮件。

所以我的问题是如何获得这个gmail comportment?我们可以动态更改参数的父活动吗?

2 个答案:

答案 0 :(得分:0)

有两种方法可以实现这一目标:

  1. 使用TaskStackBuilder并使用android:parentActivityName和相关的support-v4元数据标记as described in the corresponding Providing Up Navigation training在清单中指定父链。这是推荐的方法,因为它遵循分层任务堆栈。
  2. 在启动意图中提供一些额外内容,并根据该自定义标志向上导航。请注意,通过此机制启动活动不会显示当前活动结束的后退动画。

答案 1 :(得分:0)

评论搞乱了缩进的答案所以我回答了我的问题:

我最终得到了一个简单的自定义代码, 因为我已经访问了几次您的链接(http://developer.android.com/training/implementing-navigation/ancestral.html#NavigateUp)并且它对我没什么帮助。

这是我做的: (在http://developer.android.com/training/implementing-navigation/ancestral.html#BuildBackStackelse

// particular case  
// if this activity is the Parameter/Help activity, just finish it   

if(this.getClass().equals(ActivityParametre.class) || this.getClass().equals(ActivityAide.class)){  
    finish();  
    return true;  
 }  
// general case  
// otherwise, use pre defined code  
else {  
    NavUtils.navigateUpTo(this, upIntent);  
}