Java 按下后退按钮时,如何将布局设置为上一个布局?

Java 按下后退按钮时,如何将布局设置为上一个布局?,java,android,android-layout,Java,Android,Android Layout,我有以下代码来处理我的应用程序中的按钮按下: if (keycode == KeyEvent.KEYCODE_BACK && CURRENT_VIEW == MAIN_MENU_ACTIVE) { Window window = this.getWindow(); window.setContentView(R.layout.main); CURRENT_VIEW = MAIN_MENU_ACTIVE; retu

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

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语句,而不是改变布局。这里有什么我做错的吗?这是一个游戏,因此本质上我希望用户能够通过点击后退按钮从游戏创建屏幕导航回主菜单。

只需使用
setContentView(R.layout.main)。不要开始使用
窗口
,因为我确信您不需要这样做。

您不应该多次调用
setContentView
。为什么不直接使用
finish()
,这会让用户返回到上一个活动?

为什么我不能多次调用setContentView?我的代码中有三个地方使用setContentView,它们都工作得很好。你连续多次调用它?这往往会产生错误。我不确定这是否被明确禁止。是的,这是一个游戏,所以本质上我希望用户能够通过点击后退按钮从游戏创建屏幕导航回主菜单。我可以重新启动该活动,但随后我必须重新加载启动时加载的所有内容。我开始使用Windows,因为在尝试使用该活动时它不起作用。它总是跳过返回语句。这就像我有一个坏的if语句或其他什么。当前视图和主菜单是什么类型的字段?您的问题必须在当前视图==主菜单处于活动状态时正确。这两个都是整数。我用它们来跟踪屏幕上显示的布局。如果我在If语句处放置断点,它会直接跳到return语句。OMG my bad,意外地使If语句无法通过。对不起,浪费了你的时间。