Android Google Maps v2: Ein Klick-Listener reagiert nicht

7

Ich versuche, eine Markierung zu setzen, wenn der Benutzer auf die Karte klickt. Ich verwende ein SupportMapFragment in einem ActionBarActivity . Aber die Karte antwortet nicht, außerdem funktioniert eine Operation map.setMapType() nicht.

Hier ist mein Code:

%Vor%

Logcat zeigt die Meldung "on view created" an und die Karte zeigt den aktuellen Standort mit einem Marker an, 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?

    
Jon Zangitu 05.09.2013, 07:00
quelle

4 Antworten

15

Wenn Sie SupportMapFragment erweitert haben, können Sie das einfach tun:

%Vor%

Beachten Sie, dass getMap () in onActivityCreated und inflater.inflate(R.layout.map, container, false) aufgerufen wird, wenn Sie kein benutzerdefiniertes Layout verwenden.

Sie brauchen nicht einmal ein map.xml-Layout!

Sie erweitern SupportMapFragment , aber Sie erweitern ein weiteres MapView (nicht das, das standardmäßig an SupportMapFragment gebunden ist). Aus diesem Grund sehen Sie die Änderungen in Ihrer Map nicht. Weil du auf dem Standard View get von getMap() gehandelt hast, aber du siehst ein anderes. Informationen zu getMap () finden Sie in den Dokumenten / a>:

%Vor%      

Ruft die zugrundeliegende GoogleMap ab, die an die damit verknüpfte Ansicht gebunden ist   Fragment.

Ich hoffe, es hilft;)

    
josuadas 05.09.2013, 07:32
quelle
2

Nun, Sie platzieren einen Listener für Ihre Map, aber Sie müssen einen Listener für Ihre Marker erstellen.

%Vor%

oder für die InfoWindows oben auf den Markierungen:

%Vor%

Auch Ihre Initialisierung der Karte, die den Satelliten zeigt, ist fast richtig:

%Vor%

ändere es zu:

%Vor%     
bofredo 05.09.2013 08:32
quelle
1

Anstatt map = getMap () zu verwenden, hatte ich ein paar Zeilen später folgenden Code:

%Vor%

Also habe ich einfach den Code über diese Zeile gesetzt und es ist fertig.

    
Jon Zangitu 05.09.2013 07:25
quelle
0

Anstatt map = getMap () zu verwenden, können Sie dies versuchen.

%Vor%     
Muhammad Aamir Ali 05.09.2013 08:19
quelle