Android 对鼠标事件的监听实现

项目上要求对鼠标的点击事件进行监听,于是百度了一波,成功解决了问题,

实现方法,对要相应鼠标事件的控件设置   setOnGenericMotionListener  即可

我是在recyclerview 的adapter 的onbindviewholder里实现的

在鼠标左键按下的时候调用

如果想要早按键释放时调用,

改为event.getActionMasked() == MotionEvent.ACTION_BUTTON_RELEASE即可

viewHolder.itemView.setOnGenericMotionListener(new View.OnGenericMotionListener() {
            @Override
            public boolean onGenericMotion(View view, MotionEvent motionEvent) {
                //点击鼠标左键
                if(motionEvent.getActionButton() == MotionEvent.BUTTON_PRIMARY && motionEvent.getActionMasked() == MotionEvent.ACTION_BUTTON_PRESS){
                    viewHolder.itemView.requestFocus();//请求焦点
                    mItemListener.onItemSelected(i);//切换view 的内容
                }
                return true;
            }
        });

鼠标按键的值分别是:

switch (event.getActionButton()) {
                        case MotionEvent.BUTTON_PRIMARY:
                           Log.d("鼠标左键单击事件");
                            break;
                        case MotionEvent.BUTTON_SECONDARY:
                            Log.d("鼠标右键单击事件");
                            break;
                        case MotionEvent.BUTTON_TERTIARY:
                            Log.d("鼠标中键单击事件");
                            break;
                        case MotionEvent.BUTTON_FORWARD:
                            Log.d("鼠标前进键按下");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaowang_lj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值