Android Fragments und die Google Maps API

19 Dez

Meine Applikation soll das Einchecken an einem Event per Google Maps realisieren. Das dies mit Android prinzipiell kein Problem ist, ist kein Geheimnis. Dabei ist das Internet voll mit Tutorials und Beispielcodes zur Einbindung und Benutzung der API in einer eigenen Activity.Ich für meinen Teil wollte die MapView jedoch in ein Fragment einbauen. Das Buch Beginning Android Tablet Application Development zeigt wie das funktioniert. Jedoch habe ich mich für eine andere Lösung entschieden.

Die Einbindung der API in ein Projekt ist eigentlich recht einfach:

    1. Das Project Build Target muss auf die Google APIs der gewünschten Plattform gesetzt werden
    2. In der Android Manifest wird die Verwendung der Maps Api bekannt gemacht
    3. Die Activity muss die MapActivity erweitern und eine MapView beinhalten
      1. In der MapView wird der eigene Maps API Key eingetragen

Was nun wenn man die MapView in einem Fragment anzeigen möchte?

Die MapView wird über die XML Datei des Fragments hinzugefügt und die Activity, die das Fragment beinhaltet, muss weiterhin von der MapActivity erben. Ich habe jedoch eine Klasse namens “StandardActivity” erstellt, die selbst von der Klasse “FragmentActivity” erbt, sodass in Zukunft prinzipiell eine Portierung auf Android Versionen < 3 möglich ist. Alle Activitys sind demnach auch eine StandardActivity. Da JAVA keine Mehrfachvererbung erlaubt, habe ich mich dafür entschieden, dass die Karte in einer MapActivity angezeigt wird, sodass das Dashboard nicht angezeigt werden kann. Wünschenswert wäre eine Klasse names MapFragment, die dieses Problem umgehen würde.

Eine Diskussion über dieses “Problem” und Hacks wird hier geführt.

About these ads

Eine Antwort to “Android Fragments und die Google Maps API”

  1. wollepb 19. Dezember 2011 at 23:35 #

    Was meinst du damit, dass das Dashboard dann nicht gezeigt werden kann?

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: