在Android Studio中,我有一些关于onBackPressed()

时间:2017-07-22 13:33:57

标签: java android onbackpressed

我使用导航抽屉活动,并在主要活动中使用webview。

  1. 我进入了应用程序。

  2. 我从第一页(主页)转到第二页。

  3. 当我按下后退按钮时,应用已关闭。

  4. 但我想去主页。

    但是当我从第三页进入第二页(按后退按钮)时,它正确操作

    (主页< - >第二页< - >第三页)

    主页< - >第二页:错误

    第二页< - >第三页:没有错误

    我该怎么办?

     @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (WebView01.canGoBack()) {
            if(drawer.isDrawerOpen(GravityCompat.START)==false) {
                WebView01.goBack();
            }
        }
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        }
    
        if((WebView01.canGoBack()==false)&&(drawer.isDrawerOpen(GravityCompat.START)==false)){
            super.onBackPressed();
        }
    
    }
    

2 个答案:

答案 0 :(得分:0)

我不确定你能试试吗

 @Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) getview().findViewById(R.id.drawer_layout);
    if (WebView01.canGoBack()) {
        if(drawer.isDrawerOpen(GravityCompat.START)==false) {
            WebView01.goBack();
        }
    }
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    }

    if((WebView01.canGoBack()==false)&&(drawer.isDrawerOpen(GravityCompat.START)==false)){
        super.onBackPressed();
    }

}

答案 1 :(得分:0)

通过改变if语句的顺序来解决。 感谢。