View处理事件

    今天,在Fragment里面加入了一个WebView,想让webView在点击了一个链接之后,我按返回键是回到webview的上一个页面,而不是将整个webview回退。开始,想在activity里面处理keyDown事件,但是在activity里面获得webview的引用,就破坏了程序封装性,更准确的说是违反了狄米特法则。

    思路出现很大的错误,只要是view就可以,自己捕获点击事件或者按键事件。所以,webview也不例外,这样自己可以覆写onKeyDown事件,或者添加监听器。

mWebView.setOnKeyListener(new OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                
                    if (KeyEvent.ACTION_DOWN == event.getAction()) {
                        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
                        {
                            // 返回键退回
                            mWebView.goBack();
                            return true;
                        }
                        // If it wasn't the Back key or there's no web page history, bubble up
                        // to the default
                        // system behavior (probably exit the activity)
                        return false;
                    }
                    return false;
                    
                }
            });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值