Android按钮监听器

时间:2012-03-27 19:58:27

标签: android button listener

我正在尝试实现一个按钮监听器,当按住按钮时,该按钮监听器将值设置为true 并在实现时将其设置为false

但我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

这适合你吗?

public class ButtonDownListener implements OnTouchListener{

    boolean pressed = false;

    public boolean onTouch(View v, MotionEvent event){
        if(event == MotionEvent.ACTION_DOWN){
            pressed = true;
        }
        else if(event == MotionEvent.ACTION_UP){
            pressed = false;
        }

        return true;
    }
}

注册到按钮:

button.setOnTouchListener(new ButtonDownListener());

答案 1 :(得分:1)

像这样:

public void foo() {
  Button mButton = (Button) findViewById(R.id.mButton)

  mButton.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
      switch(event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
          mBoolean = true;
          return true;
        case MotionEvent.ACTION_UP:
          mBoolean = false;
          return true;
        default:
          return false;
      }
    }
  });
}

当然,使用上面的代码存在多线程操作的一些问题(例如,有问题的bool可能应该是原子的等等),但它是单个触摸侦听器的典型实现。多点触控监听器为交换机增加了一些案例,但这个想法仍然是一样的。