2016-03-13 138 views
0

我無法實現在WebView中的Android上調用Back按鈕。我試着用OnKeyDownOnKeyOnBackPressed 我當前的代碼如下:WebView中的OnKeyDown事件未處理 - Android

public class MainActivity extends AppCompatActivity { 
    final Activity activity = this; 
    private WebView mWebView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mWebView = (WebView) findViewById(R.id.activity_main_webview); 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     mWebView.loadUrl("file:///android_asset/index.html"); 

    } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView!=null && mWebView.canGoBack()) { 
      mWebView.goBack(); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 

} 

錯誤說,功能OnKeyDown沒有實現......你知道嗎? 真的謝謝:)很多

回答

1

試試這個代碼

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (event.getAction() == KeyEvent.ACTION_DOWN) { 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_BACK: 
      if (mWebView.canGoBack()) { 
       mWebView.goBack(); 
      } else { 
       finish(); 
      } 
      return true; 
    } 

} 
return super.onKeyDown(keyCode, event); 
} 

更新:如果上面的代碼中失敗,請嘗試以下

@Override 
public void onBackPressed() 
{ 

    if (mWebView.canGoBack()) { 
      mWebView.goBack(); 
     } else { 
      finish(); 
     }  
} 
+0

謝謝,我嘗試,但錯誤依然是:未實現的WebView的方法OnKeyDown調用從:android.webkit.WebView.onKeyDown(WebView.java:2178)@salih kallai –

+0

嘗試刪除您的webview的私人修改器,可能是工作 –

+0

同樣的事情,不知道... –