我的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。我没有回来的按钮。
还有其他方法吗?请原谅基本问题和不良英语。
答案 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()
。
这两种方法都会为后退按钮提供原生行为支持。