Android: Как сделать OnTouch работать как onClick?
-
28-09-2019 - |
Вопрос
Я использовал этот учебник http://mobifrighorge.com/developing/story/using-google-maps-android. Для отображения представления карты и установите событие OnTouch, чтобы отобразить тост (широту / долготу), когда я нажимаю на определенную область. Теперь моя проблема в том, что тостовое сообщение отображается в тот момент, когда я касаюсь экрана, даже если он должен переместить карту? Я хочу отобразить тост, только если точка касания и точка касания одинаковы. Как мне реализовать это?
Решение
Проверьте, установлен ли бит перемещения в Motionevent
if(event.getAction() & MotionEvent.ACTION_MOVE == MotionEvent.ACTION_MOVE)
Другие советы
Это правильный способ сделать это? Я почти уверен, что есть лучший способ.
if (event.getAction() == 0) {
touchX = (int) event.getX();
touchY = (int) event.getY();
}
if(event.getAction() == 1) {
if(event.getX() == touchX && event.getY()== touchY){
GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(), (int)event.getY());
Toast.makeText(getBaseContext(),
p.getLatitudeE6() / 1E6 + "," +
p.getLongitudeE6() /1E6 ,
Toast.LENGTH_SHORT).show();
}
}
Это сработало для меня, когда я нажимаю, и перетащите ничего не происходит, но если я нажимаю и выпустил его сработал! Также как поведение OnClickListener.
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP){
// yer Code here ...........
}
return false;
}