后退按钮返回上一个布局

时间:2017-04-06 09:08:37

标签: java android android-studio

好的,我说有一个名为MainActivity的Activity和2个与此actvity相关联的布局。在布局1中,我有一个按钮,当点击时打开布局2中的webview。我怎么能这样做当我按下后退按钮它回到布局1并且不退出整个应用程序。

编辑:通过创建另一个类并将其链接到其中一个布局来修复此问题。

3 个答案:

答案 0 :(得分:2)

您必须覆盖活动中的onBackPressed()并处理其中的逻辑。

@Override
public void onBackPressed(){
    if(/*layout2 visible*/){
     // code here to go back to layout 1
    }else{
          super.onBackPressed();
    }
}

答案 1 :(得分:0)

  • 首先将两个布局包含在活动的主要xml中
  • 使布局1可见,布局2不可见
  • 当您按下按钮时,布局2可见,布局1不可见
  • 然后按下后退按钮,然后检查布局2是否可见。如果可见,则使布局1可见,布局2不可见

答案 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();}
        }