Android 通过Button按钮实现返回键

1 篇文章 0 订阅
1 篇文章 0 订阅

想实现在 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();
        }
    }

完美解决问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值