如何当按下按钮,并在Android上发布的检测如何当按下按钮,并在Android上发布的检测(How

2019-05-12 03:55发布

我想开始时先按下一个按钮,开始和结束当它被释放(基本上我想衡量多久按钮时)的定时器。 我将使用System.nanoTime()方法,在这两个时间,然后减去最后一个初始数目以获取在按钮被按下经过的时间的测量。

(如果您对使用除nanoTime以外的东西()或测量按钮多长时间按住的一些其他的方式有什么建议,我是开放给那些为好。)

谢谢! 安迪

Answer 1:

使用OnTouchListener代替OnClickListener的:

// this goes somewhere in your class:
  long lastDown;
  long lastDuration;

  ...

  // this goes wherever you setup your button listener:
  button.setOnTouchListener(new OnTouchListener() {
     @Override
     public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
           lastDown = System.currentTimeMillis();
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
           lastDuration = System.currentTimeMillis() - lastDown;
        }

        return true;
     }
  });


Answer 2:

这肯定会工作:

button.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_DOWN) {
            increaseSize();
        } else if (event.getAction() == MotionEvent.ACTION_UP) {
            resetSize();
        }
        return true;
    }
});


Answer 3:

  1. 在onTouchListener开始计时。
  2. 在onClickListener停止的时间。

计算型差分。



文章来源: How to detect when button pressed and released on android