by rdormer » Thu Feb 05, 2009 6:52 pm
I have gotten the onTouchEvent method to work now by calling setClickable, but onTapEvent and onTrackballEvent are still not working.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result_detail);
String mapKey = getString(R.string.map_key);
MapView mapper = new MapView(this, mapKey);
_mapResults = MapShim.mostRecentSearch();
RelativeLayout container = (RelativeLayout) findViewById(R.id.InnerLayout);
container.addView(mapper);
mapper.setClickable(true);
addOverlays(mapper);
int mapLat = (int) (_mapResults.standingLatitude() * FLOAT_MULTIPLIER);
int mapLon = (int) (_mapResults.standingLongitude() * FLOAT_MULTIPLIER);
GeoPoint mapCenter = new GeoPoint(mapLat, mapLon);
mapper.getController().setCenter(mapCenter);
mapper.getController().setZoom(15);
ZoomControls zoomControls = (ZoomControls) mapper.getZoomControls();
zoomControls.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mapper.addView(zoomControls);
mapper.displayZoomControls(true);
}
public boolean isRouteDisplayed() {
return false;
}
private void addOverlays(MapView mv) {
List<Overlay> olist = mv.getOverlays();
olist.add(new MapHandler());
MyLocationOverlay mlo = new MyLocationOverlay(this, mv);
mlo.enableMyLocation();
olist.add(mlo);
}
private class MapHandler extends Overlay {
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
return true;
}
public boolean onTrackballEvent(MotionEvent event, MapView mapView) {
return true;
}
public boolean onTap(GeoPoint p, MapView mapView) {
return true;
}