【问题标题】:Navigate to previous Activity导航到上一个活动
【发布时间】:2011-07-16 13:03:43
【问题描述】:

我有两个屏幕,在第二个屏幕中我有一个显示第一个屏幕的后退按钮(使用意图)。如果我从第二个屏幕单击该后退按钮,我导航到第一个屏幕没有问题.. 现在我想自动导航回第二个屏幕而不单击任何按钮。请帮助我如何做到这一点。感谢您宝贵的时间。

【问题讨论】:

  • 有点不清楚你想要什么。
  • 究竟什么会触发“导航回第二个屏幕”?是否存在某种用户交互或超时?
  • 是的,我在第二个屏幕中使用了线程,2 秒后它应该触发
  • 为什么不在线程中调用intent?
  • 我尝试过意图,现在问题是状态未维护,它重新启动了活动。

标签: java android navigation android-intent screen


【解决方案1】:

我会尝试一个ViewFlipper 活动,有两个屏幕。当然,如果您可以将您的操作封装到一个活动中(我确信可以使用AsyncTasks/ThreadsServicesHandlers 进行管理)。

通过这种方式,您可以使用手势、(软/硬)按钮、下拉菜单、-whatever- 在屏幕之间导航。

【讨论】:

  • 很简单..你知道如何设置动态相对布局的子相对性吗??
  • 将新视图添加到RelativeLayout 时必须使用RelativeLayout.LayoutParams。在这种情况下,您可以将规则添加到放置新视图的位置。你应该看看this question,它也有一个很好的例子。
【解决方案2】:

您可以通过调用finish() 方法自动返回到Activity 堆栈上的上一个活动。

如果您想在没有任何用户交互的情况下执行此操作,请使用Handler,它会在预定义的超时后自动调用您的活动上的finish()(有关处理程序的更多信息,请参阅this article)。

【讨论】:

    【解决方案3】:

    尝试使用 Thread.sleep([ms]) 然后调用完成或调用意图到第一个

    【讨论】:

      【解决方案4】:

      一种解决方案是,当您从第二个屏幕按 BACK 按钮而不是调用 finish();你应该重新开始第一个活动,所以活动堆栈将是

      FIRST
      SECOND
      FIRST
      

      所以在延迟两秒后,您的活动将完成并最终返回第二个屏幕,并且状态也将保持。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-24
        • 2021-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多