所以我想在按钮上显示的时间,因为用户开始按下它,这是我的代码:如何获得,而用户仍然在按下一个按钮被按下时的Android
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
long eventDuration;
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
isDown = true;
break;
case MotionEvent.ACTION_UP:
isDown = false;
break;
default:
break;
}
eventDuration = motionEvent.getEventTime() - motionEvent.getDownTime();
btn.setText(String.valueOf(eventDuration));
return true;
}
});
代码正在工作,除了按下时间的值不更新,如果用户按住按钮而不移动他的手指,因为没有诸如“MotionEvent.ACTION_HOLD”的动作。即使用户没有移动他的手指,我也希望该值能够继续更新。
我试着每次行动是“MotionEvent.ACTION_DOWN”运行的方法
while(isDown){
eventDuration = motionEvent.getEventTime() - motionEvent.getDownTime();
btn.setText(String.valueOf(eventDuration));
}
但没有工作的while循环没有停止,isDown保持其最后的值true
。任何人都可以告诉我,我怎样才能得到它的工作?谢谢!
伟大的想法里面。我会试试谢谢你! –
它工作PERFRCT!非常感谢 ! –
很高兴工作。 :) –