Android button hover event

android, button, events, hover, pressed

Solution

you can use setOnTouchListener as:

button.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(event.getAction() == MotionEvent.ACTION_DOWN){
                    //Button Pressed
                }
                if(event.getAction() == MotionEvent.ACTION_UP){
                     //finger was lifted
                }
                return false;
            }
        });

Problem

I use a XML file to display a button with 2 states (normal, pressed). How can I find out when the button is pressed? Is there an event like onClick --> onPressed or how can I find it out? Here is the XML file I use: ``` <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/buttonbluepressed" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/buttonbluepressed" /> <item android:drawable="@drawable/buttonblue"/> </selector> ``` And here is how I use it: ``` <Button android:id="@+id/button_choose" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/choose_button" android:onClick="onButtonClicked" android:text="@string/button_choose" /> ```

Original source