Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

onHoverListener doesn't work in Android

In android document, it mentions supporting the "hover" event since 4.0 (ie. API level 14 and up). But somehow, it doesn't work. Even I tried out the sample code in ApiDemo, which is from Android Sample, it didn't work. My current device is Android 4.0.4. Should I upgrade it to 4.2.2?

Sample code is something as below. Did you have a solution to it? Thanks a lot.

Code:


View container = findViewById(R.id.container);
    container.setOnHoverListener(new View.OnHoverListener() {
        @Override
        public boolean onHover(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_HOVER_ENTER:
                    mMessageTextView.setText(Hover.this.getResources().getString(
                            R.string.hover_message_entered_at,
                            event.getX(), event.getY()));
                    break;
                case MotionEvent.ACTION_HOVER_MOVE:
                    mMessageTextView.setText(Hover.this.getResources().getString(
                            R.string.hover_message_moved_at,
                            event.getX(), event.getY()));
                    break;
                case MotionEvent.ACTION_HOVER_EXIT:
                    mMessageTextView.setText(Hover.this.getResources().getString(
                            R.string.hover_message_exited_at,
                            event.getX(), event.getY()));
                    break;
            }
            return false;
        }
    });

like image 467
Josh ZHOU Avatar asked Jul 28 '13 14:07

Josh ZHOU


2 Answers

Hovering requires support from the hardware. The only thing likely to support it is a stylus. It won't work with just your finger.

like image 186
Gabe Sechan Avatar answered Nov 18 '22 10:11

Gabe Sechan


try using OnFocusChangeListener(). PS worked for me

like image 29
Bilal Ahmed Avatar answered Nov 18 '22 12:11

Bilal Ahmed