2016-03-20 58 views
1

我正在開發一個簡單的android應用程序,它使用webview打開一個遠程URL,我使用的是android studio nav。抽屜模板女巫早已在MainActivity.java這段代碼如何在public 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(); 
    } 
} 

現在我想利用這段代碼,使返回按鈕,當用戶探索遠程站點的某些網頁

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

正如我測試,我不能有兩次public void onBackPressed()在我的MainActivity.java

任何想法我怎麼能做到這一點?

回答

2

將if-else分支添加到現有if-else。例如

@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(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

這樣,如果抽屜打開,如果你點擊後退按鈕它將被關閉。如果它被關閉,你會打電話給mWebView.goBack();'直到canGoBack()返回true

+0

是的,它使工作,我感謝您的幫助黑帶!非常感謝你! – Zoel

+0

不客氣 – 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

感謝您的幫助Wukash – Zoel

相關問題