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("鼠标前进键按下");

你可能感兴趣的:(android,java,apache)