我想有一个按钮,当它被按下时重复执行一个方法。一旦它被释放,它应该停止执行该方法。
示例:用户按住按钮 5 秒钟。然后该方法将在这 5 秒内一遍又一遍地执行。此外,被重复调用的方法需要知道按钮被按下了多长时间。
这是我到目前为止所拥有的。我正在使用onTouchListener
:
myButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
myButton.setText("Pressed!");
while(myButton.isPressed()) {
doSomething(event);
}
break;
case MotionEvent.ACTION_UP:
myButton.setText("Press me!");
}
return false;
};
private void doSomething(MotionEvent event) {
// Do some calculation with the time the button is pressed so far
}
});
我的问题是它while-loop
不能正常工作,而且我不知道如何获得按下按钮的时间。也许随着事件?有任何想法吗?