Событие для зависания кнопки Android

Я использую XML-файл для отображения кнопки с двумя состояниями (обычный, нажатый). Как узнать, когда нажата кнопка? Есть ли событие, такое как onClick -> onPressed или как его узнать?

Вот файл XML, который я использую:

<?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> 

И вот как я его использую:

 <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" /> 

    Вы можете использовать setOnTouchListener как:

     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; } });