移動アクションを実行するタイミングと、MapView でジオポイントを単にタップするタイミングを定義する方法に問題があります。問題は、タップすると次の evEnts が表示されるということです: ACTION_DOWN(1 発火)、ACTION_MOVE(3 発火)、ACTION_DOWN(1 発火)。移動すると、次のイベントが表示されます: ACTION_DOWN(1 回の火災)、ACTION_MOVE(LOT FIRES)、ACTION_DOWN(1 回の火災)。
そのように定義する方法と、ジオポイントの alertDialog がある onTap 関数をブロックしないようにする方法は?
私がやったことですが、少し混乱しています:
@Override
protected boolean onTap(int index) {
Log.i("Tapped? ", "TAP!");
if (mOverlays.get(index) != null && !touchStarted) {
OverlayItem item = mOverlays.get(index);
alert.showAlertDialog(mContext, item.getTitle(), item.getSnippet(), true);
return true;
} else {
return false; // Null GeoPoint
}
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
Log.e("Touch", Integer.toString(event.getAction()));
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
touchStarted = true;
} else if (action == MotionEvent.ACTION_MOVE) {
// movement: cancel the touch press
touchStarted = false;
if (event.getPointerCount() > 3)
Log.e("Movement", "Yeee");
return true;
}
return true;
}