Android java使用菜单按钮切换页面

Android java使用菜单按钮切换页面,java,android,toggle,Java,Android,Toggle,我希望在我的应用程序中创建一个单独的页面(布局和子活动),您可以通过单击菜单按钮访问该页面。我希望它能够以这样的方式切换:当您再次单击菜单按钮时,您将返回到MainActivity和activity_mail.xml布局 我在以下代码方面取得了一定程度的成功: @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if

我希望在我的应用程序中创建一个单独的页面(布局和子活动),您可以通过单击菜单按钮访问该页面。我希望它能够以这样的方式切换:当您再次单击菜单按钮时,您将返回到MainActivity和activity_mail.xml布局

我在以下代码方面取得了一定程度的成功:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    setContentView(R.layout.settings);



    return true;
}

这将成功切换到settings.xml布局。但是,当再次按下菜单按钮时,如何返回activity_main.xml布局?

这不是创建
选项菜单的目的,但是。有很多可能的方法可以做到这一点。一种可能的方法是创建一个布尔字段变量

private boolean isInMailLayout = true;
[...]
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    if(isInMainLayout){
        setContentView(R.layout.settings);
        isInMailLayout = false;
    }
    else {
        setContentView(activity_mail.xml);
        isInMailLayout = true;

    }

    return true;
}
选项菜单的用途是:
选项菜单应在中显示菜单(如果您使用ActionBar)或在中显示菜单(如果您不使用ActionBar)


另一方面,您不想显示菜单,而是想更改布局。您可能需要为此启动一个新的活动。

您能告诉我创建选项菜单的目的是什么,或者是否有不使用选项菜单实现此目的的最佳做法吗?太好了。非常感谢。我试着把这个代码放到我的main活动中,一旦按下按钮,它似乎就卡在了“return true”部分。你是什么意思?它崩溃了吗?它似乎只是停留在返回的真实部分,没有对再次按下按钮做出响应。最后,我开始思考活动和KeyEvents,并这样做:@Override public boolean onKeyDown(int-keyCode,KeyEvent-event-event){if(keyCode==KeyEvent.keyCode_-MENU){activityName=this.getClass().getSimpleName();String MainAct=“MainActivity”;Intent startNewActivityOpen=newintent(MainActivity.this,settings.class);if(activityName.contains(MainAct)){startActivity(startNewActivityOpen);}else{//startActivity(startNewActivityOpen.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));finish()}返回true;}返回super.onKeyDown(keyCode,event);}