Ich versuche, eine Markierung zu setzen, wenn der Benutzer auf Karte klickt. Ich verwende eine SupportMapFragment
innerhalb einer ActionBarActivity
. Aber die Karte antwortet nicht, außerdem funktioniert eine map.setMapType()
Operation nicht.Android Google Maps v2: auf Klick-Listener reagiert nicht
Hier ist mein Code:
private GoogleMap map;
private Marker marker;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ActionBarActivity activity = (ActionBarActivity) getActivity();
activity.getSupportActionBar().setTitle(R.string.select_location);
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.map, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.d("Map","On view created");
map = getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
Log.d("Map","Map clicked");
marker.remove();
drawMarker(point);
}
});
...
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
//PLACE THE INITIAL MARKER
drawMarker(new LatLng(location.getLatitude(),location.getLongitude()));
}
}
Logcat ist die „auf Sicht erstellt“ -Meldung zeigt und die Karte zeigt den aktuellen Standort mit einem Marker, so dass der letzte Teil des Codes ausgeführt wird. Aber die onMapClickListener
ist übergangen oder etwas, weil es nicht funktioniert, und die Karte ist kein Satellit.
Kann mir jemand helfen?
Danke josuadas! Der Punkt ist, dass ich ein XML aufblasen muss, weil es keine Ansicht mit nur einer Karte ist. Ich denke, es ist immer noch notwendig, SupportMapFragment zu erweitern, oder? –
Ez Horregatik! Meiner Meinung nach sollte man SupportMapFragment in diesem Fall nicht erweitern, sondern nur Fragment (aus der Support-Bibliothek). Siehe diesen Link: http://stackoverflow.com/questions/13804511/supportmapfragment-with-a-custom-layout-possible – josuadas
Eine andere Möglichkeit besteht darin, das SupportMapFragment zu einer FragmentActivity hinzuzufügen, die nur den Platz für die Map einnimmt. F.i. Verwenden eines FrameLayout als Container in Ihrem FragmentActivity-Layout: http://developer.android.com/training/basics/fragments/fragment-ui.html#AddAtRuntime – josuadas