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

时间:2015-01-19 17:32:13

标签: android multiple-views setcontentview

我的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,所以我按下'返回'按钮。 整个应用程序关闭.. !!我被带到手机的主屏幕。

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

还有其他方法吗?请原谅基本问题和不良英语。

2 个答案:

答案 0 :(得分:1)

你必须在你的活动中覆盖onBackPressed()函数,你必须再次将setContentView设置为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();
    }
}

答案 1 :(得分:0)

你几乎不应该多次拨打setContentView()。您所描述的是标准的后台堆栈行为。启动 Activity您要转换到的任何布局,或切换到使用Fragment,然后将新的Fragment添加到Backstack中打电话给setContentView()

这两种方法都会为后退按钮提供原生行为支持。