Android按钮悬停事件

问题描述:

我使用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" /> 

你可以使用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分钟才能将答案标记为正确。 –