У меня есть OnTouchListener
, и я жду событий вверх и вниз. Однако, когда пользователь прикасается к поверхности для быстрого/короткого, только событие вниз будет срабатывать, а не событие «вверх». Я исправил его временно с помощью потока сна, но я точно знаю, что это не идеальное решение. Кто-нибудь имеет лучшую идею?На сенсорном прослушиватель не срабатывает, когда пользователь слишком быстро
Button myButton = (Button) findViewById(R.id.button);
myButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
long timeLastTouch = System.currentTimeMillis();
if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
long timeTouchNow = System.currentTimeMillis();
if (timeTouchNow - timeLastTouch < 400){
return true;
}
return false;
}
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
long timeNow = System.currentTimeMillis();
if ((timeNow - timeLastTouch) < 400) {
// do stuff
return true;
}
return false;
}
}
return false;
}
}
});
Хорошо, хорошо, но где я должен проверить, больше ли разница в 400 миллисекунд, а только выполнить код? – Dominic
С помощью метода ontouch –
Не могли бы вы взглянуть на мой новый код и рассказать, что с ним не так? – Dominic