2012-06-30 114 views
3

我使用XML文件來顯示具有2個狀態(正常,按下)的按鈕。我怎樣才能找出按鈕被按下的時間?是否有像onClick - > onPressed這樣的事件,或者我怎麼能找到它?Android按鈕懸停事件

這裏是我使用的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" /> 

回答

11

你可以使用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; 
      } 
     }); 
+0

謝謝您回答。這正是我正在尋找的。我必須將返回值更改爲false,否則未顯示按下的按鈕狀態圖像。 –

+0

@viperbone:welcome friend.i已將其更改爲false –

+1

再次感謝您。是的,我必須等待至少10分鐘才能將答案標記爲正確。 –