如何在android代码的主要活动中第二次使用setContentView(layout_id)?

如何在android代码的主要活动中第二次使用setContentView(layout_id)?,android,multiple-views,setcontentview,Android,Multiple Views,Setcontentview,My activity_main.xml有两个按钮。我已经实现了onClickListner();为了他们两个 对于MainActivity,->setContentView(R.layout.activity_main) 此活动有两个按钮 按钮1-设置内容视图(R.layout.layout1); 按钮2-设置内容视图(R.layout.layout2) 这是正确的使用方法吗??因为 程序运行良好。问题是,当我点击按钮2时,布局2加载,我现在想回到主活动,所以我按下“后退”按钮。 整个应用程序

My activity_main.xml有两个按钮。我已经实现了onClickListner();为了他们两个

对于MainActivity,->setContentView(R.layout.activity_main) 此活动有两个按钮

按钮1-设置内容视图(R.layout.layout1); 按钮2-设置内容视图(R.layout.layout2)

这是正确的使用方法吗??因为

程序运行良好。问题是,当我点击按钮2时,布局2加载,我现在想回到主活动,所以我按下“后退”按钮。 整个应用程序将关闭。。!!我被带到手机的主屏幕

如何避开这个??我说的是取景器。我没有按钮回来


还有别的办法吗??请原谅基本问题和糟糕的英语。

您必须在活动中重写onBackPressed()函数,并且再次将contentview设置为activity_main.xml,并从onBackPressed中删除super.onBackPressed

大概是这样的:

@Override
public void onBackPressed() {
    //validation if you are in second layout
    if(layout2){
       //do things
        showLayout1();
    }else{
       super.onBackPressed();
    }
}

您几乎不应该多次调用
setContentView()
。你所描述的是标准的倒退行为。启动一个新的
活动
您要转换到的任何布局,或者切换到使用
片段
s,并将一个新的
片段
添加到backstack,而不是调用
setContentView()


这两种方法都会为“后退”按钮提供本机行为支持。

谢谢。。。我如何写if(布局2)??如何查看当前视图是否设置为layout2?