Android Webview后退按钮转到上一页

时间:2016-06-07 07:53:03

标签: android

我有一个网页视图,可让我浏览网站。当我单击后退按钮,而不是它转到上一页时,它退出应用程序。我已将以下方法添加到MainActivity.java

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    setContentView(R.layout.activity_main);
    WebView webview = (WebView) this.findViewById(R.id.webView);
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (webview.canGoBack()) {
                    webview.goBack();
                } else {
                    finish();
                }
                return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

4 个答案:

答案 0 :(得分:16)

我认为您应该覆盖您的活动OnBackPressed

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

答案 1 :(得分:3)

不要覆盖onKeyDown事件,覆盖onBackPressed,这样每次按下后退按钮时,您都可以覆盖它并将自己的逻辑添加到其中。守则是这样的:

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

答案 2 :(得分:0)

下一个按钮和进度栏的完整参考:put back and next button in webview

如果要在单击手机的后退按钮时返回上一页,请使用以下方法:

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
} 

您还可以像这样创建自定义后退按钮:

btnback.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if (wv.canGoBack()) {
                wv.goBack();
            }
        }
    }); 

答案 3 :(得分:0)

按Backkey键的事件不适合在这里使用此代码:

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent=new Intent(LiveImage.this,DashBoard.class);
    startActivity(intent);
}