【问题标题】:How do I set the parent activity of an activity at runtime?如何在运行时设置活动的父活动?
【发布时间】:2013-12-21 03:32:47
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

听起来您正在混淆上下导航。

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

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

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

见: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);
}

【讨论】:

  • 我理解向上和返回按钮。并且有一个清晰的层次结构,但它是在运行时确定的(基于动态内容)。
  • 比如说,你想制作一个应用程序来创建一个家谱,每个人都会有自己的视图,上面有一张照片和关于那个人的注释。所以切入点是你的祖父,然后你选择你的母亲,然后是你自己。现在您可以在运行时添加您儿子的配置文件,这将在层次结构中创建一个较低的节点。从您的儿子那里,您单击“向上”3 次以回到您的祖父那里。我该如何实现?
  • 我仍然认为它更适合后退按钮,但我同意它是一个灰色区域。我已经用一个你想要完成的例子更新了我的答案。您可以选择在单击向上按钮时执行的操作,而不是在 XML 中设置父级。
猜你喜欢
  • 1970-01-01
  • 2021-09-23
  • 2012-12-07
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
相关资源
最近更新 更多