如何在 android 的 main_activity 代码中第二次使用 setContentView(layout_id)?

How to use setContentView(layout_id) second time in main_activity of android code?

我的 activity_main.xml 有 2 个按钮。我已经实现了 onClickListner();对于他们两个。

对于MainActivity,->setContentView(R.layout.activity_main) 这个 activity_main 有 2 个按钮。

Button1 - setContentView(R.layout.layout1); Button2 - setContentView (R.layout.layout2);

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

程序运行良好。问题是,当我单击 Button2 时,layout2 加载,我现在想回到 main_activity,所以我按下 'Back' 按钮。 整个应用程序关闭..!!我被带到 phone 的主屏幕。

如何解决这个问题??我说 ViewSwitcher。我没有返回按钮。

还有其他办法吗??基础问题和英文不好请见谅

你必须覆盖 activity 中的 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()。您所描述的是标准的 backstack 行为。要么开始一个 new Activity 无论你要过渡到什么布局,或者切换到使用 Fragments,并添加一个新的 Fragment 到后台而不是调用 setContentView()

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