想实现在 WebView 中通过点击返回 Button 按钮实现返回上一页,但是使用了 finish(),直接把 Activity 给结束了,后面参考网络上:
onKeyDown(KeyEvent.KEYCODE_BACK, null);
在主页面调用时,会报空指针异常
用了很多种方法也没用,后面找到了 webView 里自带的一个方法可以解决问题,我们通过调用webView.canGoBack()
来判断是否可以返回(是否在最初始页中),重写了onKeyDown()
和 goBack()
后,进行一个判断,如果不是初始页就调用
onKeyDown(KeyEvent.KEYCODE_BACK, null);
否则 finish()
部分代码:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return (keyCode != KeyEvent.KEYCODE_BACK || !goBack()) && super.onKeyDown(keyCode, event);
}
private boolean goBack() {
if (webView.canGoBack()) {
webView.goBack();
return true;
}
return false;
}
public void onViewClicked() {
if (webView.canGoBack()){
onKeyDown(KeyEvent.KEYCODE_BACK , null);
}else{
finish();
}
}
完美解决问题