2016-03-20 15 views
1

Ich entwickle eine einfache Android-App, die Webview verwendet, um eine Remote-URL zu öffnen, verwende ich das Android Studio Nav. Vorlage Hexe Schublade hat bereits im MainActivity.java dieses Stück CodeSo implementieren Sie zwei Aktionen auf öffentliche void OnBackPressed()

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

Jetzt habe ich dieses Stück Code verwenden möchten, die zurück-Taste zu aktivieren, wenn ein Benutzer einige Seiten der Remote-Website erforscht

if(mWebView.canGoBack()) { 
    mWebView.goBack(); 

wie ich getestet ich kann die public void onBackPressed() in meinem MainActivity.java

keine Gedanken darüber, wie kann ich nicht zwei mal haben machen das passieren?

Antwort

2

Fügen Sie einen if-else-Zweig zum vorhandenen if-else hinzu. ZB

so, wenn die Schublade geöffnet ist, wenn Sie die Zurück-Taste drücken, wird es geschlossen. Wenn es geschlossen ist, rufen Sie mWebView.goBack(); 'bis canGoBack() zurück True

+0

Ja, dass es funktioniert, ich schätze Ihre Hilfe Blackbelt! Vielen Dank! – Zoel

+0

Gern geschehen – Blackbelt

1
@Override 
    public void onBackPressed() { 
     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     if (drawer.isDrawerOpen(GravityCompat.START)) { 
      drawer.closeDrawer(GravityCompat.START); 
     } else { 
      if(mWebView.canGoBack()) { 
       mWebView.goBack(); 
       return; 
      } 
      super.onBackPressed(); 
     } 
    } 
+0

Danke für die Hilfe Wukash – Zoel

Verwandte Themen