如何在按下按钮后立即执行代码?

时间:2012-06-06 11:55:44

标签: android

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

findViewById(R.id.myButton).setOnTouchListener(new OnTouchListener(){
        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            if(arg1.getAction() == MotionEvent.ACTION_DOWN){
                //do something funny
            }
            return true;
        }
    });

答案 2 :(得分:0)

您可以尝试这样的事情:

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