好的,我说有一个名为MainActivity的Activity和2个与此actvity相关联的布局。在布局1中,我有一个按钮,当点击时打开布局2中的webview。我怎么能这样做当我按下后退按钮它回到布局1并且不退出整个应用程序。
编辑:通过创建另一个类并将其链接到其中一个布局来修复此问题。
答案 0 :(得分:2)
您必须覆盖活动中的onBackPressed()
并处理其中的逻辑。
@Override
public void onBackPressed(){
if(/*layout2 visible*/){
// code here to go back to layout 1
}else{
super.onBackPressed();
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
我使用onBackPressed()
来使用此代码1- activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/go_to_second_layout"
android:text="Go to second layout"
android:onClick="onClick"/>
2- second_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/second_layout">
3- MainActivity.java
public void onClick(View v){
switch(v.getId){
case R.id.go_to_second_layout:{
setContentView(R.layout.second_layout);
((LinearLayout)findViewById(R.id.second_layout)).setVisibility(View.VISIBLE);
break;}}}
@Override
public void onBackPressed() {
if (((LinearLayout)findViewById(R.id.second_layout)).VISIBLE==View.VISIBLE){
setContentView(R.layout.activity_main);
((LinearLayout)findViewById(R.id.second_layout)).setVisibility(View.GONE);
}
else {
super.onBackPressed();}
}