Google Maps v2 In Fragment wird beim zweimaligen Klicken doppelt gezählt

8

Ich versuche, Google Maps in meiner App in einem Fragment mit einem Marker einzurichten. Es funktioniert, wenn ich das erste Mal darauf klicke, aber wenn ich auf ein anderes Fragment klicke und dann zurück zu den Google Maps, stürzt es ab. Nicht sicher, was das Problem ist? Jede Hilfe wäre toll, nur Anfänger.

Heres Code:

Xml

%Vor%

Java google maps fragment BEARBEITEN CODE UNTER

BEARBEITEN %Vor%

Fehler

%Vor%     
user2407147 15.06.2013, 20:06
quelle

2 Antworten

6

Aus dem Code, den Ihr hier präsentiert, gibt es einen Fehler in den Objekten, die Sie verwenden wollen, und Sie vermischen sie. Ich spreche über das Objekt MapFragment , das Sie in Ihrer XML-Layoutdatei verwenden:

%Vor%

Wenn Sie in Ihrer XML-Datei MapFragment verwenden, sehe ich nicht, warum Sie versuchen, ein SupportMapFragment -Objekt in Ihrem Aktivitätscode zu erhalten:

%Vor%

Es wäre schön zu sehen, auf welche API-Ebene Sie Ihre Anwendung ausrichten, aber Sie müssen entscheiden, ob Sie Geräte mit API V11 und niedriger unterstützen möchten oder nur API V12 und höher. Wenn Sie API V11 und niedriger unterstützen möchten, lesen Sie diesen Blogbeitrag, den ich über die Integration von Google API V2 map in Ihre Anwendung geschrieben habe:

Google Maps API V2

Ich möchte nur die höhere Version unterstützen und dann den Aktivitätscode ändern:

%Vor%

und ändern Sie Ihre Manifest-Datei entsprechend.

    
Emil Adz 15.06.2013, 22:50
quelle
1

com.google.android.gms.maps.MapFragment basiert auf der Fragment-Klasse, die nicht im Support-Paket enthalten ist. Sie müssen Ihre XML ändern, um com.google.android.gms.maps.SupportMapFragment zu verwenden.

Oder verwenden Sie SupportMapFragment nicht in Ihrer Aktivität. Wenn Sie nach der Unterstützung von Rückwärts-Fragmenten (vor Honeycomb) suchen, empfehle ich, die Klasse in Ihrem XML-Layout in SupportMapFragment zu ändern. Wenn nicht, ziehen Sie in Betracht, das Fragment in Ihre Aktivität nur auf MapFragment zu übertragen.

Nun scheint die Karte für den zweiten Absturz nicht verfügbar zu sein. Mit der V2-Kartenbibliothek müssen die neuesten Google Play-Dienste auf Ihrem Gerät ausgeführt werden. In der Regel wird die Google Play App dies automatisch für Sie installieren. Wenn Sie einen Emulator verwenden, befürchte ich, dass Sie im Moment kein Glück haben. Lesen Sie diese Antwort zur Verwendung von Play Services mit einem Emulator: Wie Google Play Services in einem Android-Emulator herunterladen?

Um einen Absturz zu vermeiden, sehen Sie sich dieses Codebeispiel an. Eine kurze Beschreibung der Kartenverfügbarkeit finden Sie auch im zweiten Absatz in der Klasse Übersicht .

    
Flynn81 15.06.2013 20:15
quelle