【问题标题】:How do I set the layout to the previous layout when the back button is pressed?按下后退按钮时如何将布局设置为以前的布局?
【发布时间】:2011-04-08 21:31:05
【问题描述】:

我有以下代码来处理我的应用程序中的按钮按下:

if (keycode == KeyEvent.KEYCODE_BACK && CURRENT_VIEW == MAIN_MENU_ACTIVE) {
        Window window = this.getWindow();

        window.setContentView(R.layout.main);
        CURRENT_VIEW = MAIN_MENU_ACTIVE;

        return true;

    }

当它运行时,android 只是直接跳转到 return 语句,而不是改变布局。我在这里做错了什么吗?这是针对游戏的,所以基本上我希望用户能够通过点击后退按钮从游戏创建屏幕导航回主菜单。

【问题讨论】:

  • CURRENT_VIEW 和 MAIN_MENU_ACTIVE 是什么类型的字段?您的问题一定在 CURRENT_VIEW == MAIN_MENU_ACTIVE。
  • 这两个都是整数。我正在使用它们来跟踪屏幕上显示的布局。如果我在 if 语句处设置断点,它会直接跳转到 return 语句。
  • 天哪,我的错,不小心使 if 语句无法通过。很抱歉浪费了您的时间。

标签: java android android-layout


【解决方案1】:

只需使用setContentView(R.layout.main);。不要开始使用Window,因为我很确定你不需要。

【讨论】:

  • 我开始使用 window 是因为在我尝试使用 Activity 时它不起作用。它总是跳到 return 语句。这就像我有一个糟糕的 if 语句或其他东西。
【解决方案2】:

您不应多次致电setContentView。为什么不简单地使用finish(),它将用户返回到上一个活动?

【讨论】:

  • 为什么我不能多次调用 setContentView?我的代码中有 3 个地方使用 setContentView,它们都工作正常。
  • 连续调用多次?这往往会产生错误。我不确定它是否被明确禁止。
  • 是的,这是一个游戏,所以本质上我希望用户能够通过点击返回按钮从游戏创建屏幕导航回到主菜单。我可以重新启动活动,但是我必须重新加载启动时加载的所有内容。
猜你喜欢
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多