Android 如何执行一按下按钮就运行的代码?

Android 如何执行一按下按钮就运行的代码?,android,Android,在Android中,当按下按钮时,您可以在用户抬起手指后使用setOnClickListener执行代码。如何在按下按钮后立即执行代码?使用setOnTouchListener方法: button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method s

在Android中,当按下按钮时,您可以在用户抬起手指后使用setOnClickListener执行代码。如何在按下按钮后立即执行代码?

使用
setOnTouchListener
方法:

 button.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
     // TODO Auto-generated method stub
     if(event.getAction()==MotionEvent.ACTION_DOWN)
           //do what you wish to
     return false;
    }
   }))

您可以尝试以下方法:

public class DownTouchButton extends Button implements OnTouchListener {

    private DownTouchButton(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private DownTouchButton(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    private DownTouchButton(Context context) {
        super(context);
        init();
    }

    private void init() {
        setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        switch(action){
        case MotionEvent.ACTION_DOWN:
            Log.d("YourApp", "A down event");
            break;
        default:
            break;
        }
        return false;
    }
}
然后在xml中:

<com.your.package.DownTouchButton
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="Down Press Me!"
/>

创建一个类,该类扩展
视图
并覆盖
onTouchEvent
,然后检查
动作事件
onTouch()将重复调用,直到用户抬起手指为止。
<com.your.package.DownTouchButton
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="Down Press Me!"
/>