如何在 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
无论你要过渡到什么布局,或者切换到使用 Fragment
s,并添加一个新的 Fragment
到后台而不是调用 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,所以我按下 '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
无论你要过渡到什么布局,或者切换到使用 Fragment
s,并添加一个新的 Fragment
到后台而不是调用 setContentView()
。
这两种方法都会为您提供对后退按钮的本机行为支持。