如何在运行时设置活动的父活动?

时间:2013-12-04 15:09:01

标签: android android-activity android-actionbar android-navigation up-navigation

我有任意数量的分层嵌套视图/活动。操作栏应显示向上导航按钮以在任何视图中导航到更高级别。为此,google documentation表示我必须在活动的xml定义中使用标记设置父活动。但是,我正在动态创建我的活动,并且子元素可以与它的父元素具有相同的活动。

那么如何在运行时将父活动设置为实际的父实例?

2 个答案:

答案 0 :(得分:6)

听起来你好像混淆了导航。

向上按钮应该是确定性的。在给定的屏幕上,向上按钮应始终将用户带到同一屏幕。

后退按钮不应始终将用户带到同一屏幕。后退按钮的目的是帮助用户按时间顺序返回应用程序。它应该将用户带到上一个屏幕。

如果没有明确的屏幕层次结构(例如,没有父/子屏幕),那么您可能根本不需要实现导航。

请参阅:Navigation with Up and Back

覆盖默认向上按钮行为的一个选项是简单地拦截按钮单击并自行处理。例如:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        // Launch the correct Activity here
        return true;
    }
    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:0)

有两种方法可以正确支持' up'导航

在此处查看我对类似问题的回答:https://stackoverflow.com/a/34775181/4839264