所以我想在按鈕上顯示的時間,因爲用戶開始按下它,這是我的代碼:如何獲得,而用戶仍然在按下一個按鈕被按下時的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!非常感謝 ! –
很高興工作。 :) –