Android WebView backbutton

Android WebView backbutton,android,webview,Android,Webview,按下backbutton时,我的WebView正在加载上一页,而我没有重写onBackPressed方法。我想知道如何防止这种行为,因为这不是应用程序设计所需要的。backbutton应该只做它通常做的事情,导航片段/活动,而不是WebView本身 webView = (WebView) getView().findViewById(R.id.webView); webView.setWebViewClient(new InternalWebClient()); webView.getSetti

按下backbutton时,我的WebView正在加载上一页,而我没有重写onBackPressed方法。我想知道如何防止这种行为,因为这不是应用程序设计所需要的。backbutton应该只做它通常做的事情,导航片段/活动,而不是WebView本身

webView = (WebView) getView().findViewById(R.id.webView);
webView.setWebViewClient(new InternalWebClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
问候。

好的,很简单

webView.setOnKeyListener(new View.OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            MyActivity.this.finish();  // or getActivity().finish() when in Fragment
        }
        return false;
    }
});

下面是在Webview中启用“后退”按钮的最佳方法

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

什么是InternalWebClient?只需重写shouldOverrideUrlLoading、onPageFinished和onReceivedError方法,加载时显示进度微调器,加载失败时显示一些自定义html。不应该和我的问题有任何关系。我应该从这里显示的源代码中删除它吗?