Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在运行时设置活动的父活动?_Android_Android Activity_Android Actionbar_Android Navigation_Up Navigation - Fatal编程技术网

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

Android 如何在运行时设置活动的父活动?,android,android-activity,android-actionbar,android-navigation,up-navigation,Android,Android Activity,Android Actionbar,Android Navigation,Up Navigation,我有任意数量的分层嵌套视图/活动。操作栏应显示向上导航按钮,以便在任何视图中导航到更高级别。为此,声明我必须在活动的xml定义中使用标记设置父活动。但是,我正在动态创建活动,并且子元素可以与其父元素属于同一活动 那么,如何在运行时将父活动设置为实际的父实例呢?听起来您混淆了上下导航 向上按钮应该是确定的。在给定屏幕上,向上按钮应始终将用户带到同一屏幕 后退按钮不应总是将用户带到同一屏幕。“后退”按钮的作用是帮助用户按时间顺序向后浏览应用程序。它会将用户带到上一个屏幕 如果没有清晰的屏幕层次结构(

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


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

听起来您混淆了上下导航

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

后退按钮不应总是将用户带到同一屏幕。“后退”按钮的作用是帮助用户按时间顺序向后浏览应用程序。它会将用户带到上一个屏幕

如果没有清晰的屏幕层次结构(例如,没有父/子屏幕),则可能根本不需要实现向上导航

见:

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

@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);
}

我理解向上键和后退键。有一个清晰的层次结构,但它是在运行时确定的(基于动态内容)。例如,你想制作一个应用程序来创建一个家谱,每个人都有自己的视图,其中包含一张照片和关于此人的笔记。所以切入点是你的祖父,然后你选择你的母亲,然后是你自己。现在,您可以在运行时添加您儿子的概要文件,这将在层次结构中创建一个较低的节点。从你的儿子那里,你点击“向上”三次回到你的祖父那里。我如何实现这一点?我仍然认为这更适合于后退按钮,但我同意它是灰色区域。我已经用一个例子更新了我的答案,说明了你正在努力实现的目标。您可以选择在单击“向上”按钮时执行的操作,而不是在XML中设置父项。另一个相关问题-真正的解决方案来自对接受答案的评论:有两种方法可以正确支持“向上”导航。请参见我对类似问题的回答: