首页 > 解决方案 > 如何设置一个视图,当用户单击手机的后退按钮时,它会返回到同一个 java 类中的视图

问题描述

我需要弄清楚当用户单击手机的返回按钮(不是界面中的按钮)时如何使界面返回上一页。

问题是当我setContentView()在我的代码中使用时,当我单击“返回”按钮时,界面没有返回mainlayout.xml,而是返回到之前的上一个布局文件mainlayout.xml

有谁知道如何解决这个问题?

public class Main extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainlayout);
    }
    public void clicked(View v){
        switch (v.getId()){
            case R.id.a:
                setContentView(R.layout.alayout);
                break;
            case R.id.b:
                setContentView(R.layout.blayout);
                break;
        }
    }

}

标签: javaandroid

解决方案


它将解决问题,但高度不推荐

public class Main extends AppCompatActivity {

    boolean isMainContentSet = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainlayout);
    }
    public void clicked(View v){
        switch (v.getId()){
            case R.id.a:
                setContentView(R.layout.alayout);
                isMainContentSet = false;
                break;
            case R.id.b:
                setContentView(R.layout.blayout);
                isMainContentSet = false;
                break;
        }
     }


    @Override
    public void onBackPressed() {
        //your code when back button pressed
        if(!isMainContentSet){
            setContentView(R.layout.mainlayout);
            isMainContentSet = true;
        }else{
            super.onBackPressed();
        }
    }

}

推荐阅读