监听返回键的回退事件,和长按事件

模拟器测程序坑死人啊,模拟器监听不到返回键的长按事件,搞了半天没看出问题,于是拿真机跑了一下,而真机能!


public class MainActivity extends ActionBarActivity {

    WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mWebView = (WebView) findViewById(R.id.mWebView);

        mWebView.loadUrl("https://www.baidu.com/");

        mWebView.setWebViewClient(new WebViewClient(){//网页在webview中打开,不跳转浏览器
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
    }

    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {//按键事件分发
        if (event.getKeyCode()==event.KEYCODE_BACK ){
            if (event.isLongPress()){
                Log.e("","长按");
                finish();
                return true;//返回true表示消费事件(拦截事件),事件不再向下传递
            }
            else {
                if(mWebView.canGoBack()){
                    Log.e("","后退");
                    mWebView.goBack();
                    return true;
                }
            }
        }
        return super.dispatchKeyEvent(event);
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值