Hinzufügen von Identifikationsmerkmal auf Google Maps v2 api für Android

Nun, jeder Marker auf meiner Anwendung wird ein Benutzer darstellen, also muss ich diesen Benutzer identifizieren, wenn ich auf das Info-Fenster klicke, um seine Daten aus dem Internet zu bekommen, und ich kann es nicht identifizieren sie mit Namen aus offensichtlichen Gründen. Ist es möglich, ein zusätzliches Attribut zu einem Markerobjekt hinzuzufügen? Vielen Dank!

  • Wie kann ich einen Android-Thread komplett töten?
  • Set android alarm zu bestimmten zeit
  • Vorteile der Verwendung von flush () close () in Android-Streams?
  • Android - FragmentTabHost Error "Kein Tab bekannt für Tag null"
  • BaseGameActivity.runOnUpdateThread () vs. Entity.registerUpdateHandler ()
  • So erstellen Sie ein DialogFragment ohne Titel?
  • Holen Sie sich Android Google Analytics Referrer Tag
  • Beschleunigungsmesser & Gyro Genauigkeit in verschiedenen mobilen Gerät
  • Wie man Twitter und Facebook Authentifizierung und Token über Android Account Manager Klassen abrufen kann
  • Gib ein String-Array auf einer JNI-Methode zurück
  • Wie bekommst du die Manifest Versionsnummer aus den XML-Variablen der App (Layout)?
  • Kann nicht mehrere Android dex Dateien mit Ant aus externen Gläsern bauen
  • 5 Solutions collect form web for “Hinzufügen von Identifikationsmerkmal auf Google Maps v2 api für Android”

    Du HashMap<Marker, User> einen HashMap<Marker, User>

    Überprüfen Sie dieses Tutorial: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html

    Ist es möglich, ein zusätzliches Attribut zu einem Markerobjekt hinzuzufügen?

    Nr. Marker ist final . Auch die Marker Objekte, die du erschaffst, verschwinden schnell, da sie nur für einige IPCs für die Google Play Services App verwendet werden. Das Marker Objekt, das du in deinem OnInfoWindowClickListener scheint eine rekonstruierte Kopie zu sein.

    Ich habe einen Untertitel im Snippet-Feld, also ist das keine Option.

    Sicher ist es das. Speichern Sie die Untertitel irgendwo anders, und legen Sie Ihren Schlüssel zu Ihrem Benutzer in den Untertitel. Wenn Sie den InfoWindow aus Ihrem InfoWindowAdapter , ziehen Sie den Untertitel.

    Ich denke nicht, dass es eine gute Idee ist, starke Verweise auf Marker über eine Karte zu halten. Da du sowieso deinen benutzerdefinierten Fensteradapter benutzt hast, um Inhalte zu rendern, kannst du entweder das Snippet () oder den Titel () auf den MarkerOptions "missbrauchen", um deine Informationen zu speichern. Sie sind beide Saiten, so hing von den Informationen ab, um zu speichern, dass Sie etwas mehr Gedächtnis verwenden würden, auf der anderen Seite würden Sie sicher vor Speicherlecks sein, indem Sie starke Verweise auf Markierungen halten.

    Auch, du würdest kompatibel zu der Art und Weise, wie Maps es beharrlich macht während der Haltestellen und Lebensläufe.

    Hier ist eine etwas einfachere Lösung, die ich implementiert habe. Alles, was Sie tun, ist ein InfoWindowAdapter erstellen, das etwas nimmt, das Sie an das Fenster in seinem Konstruktor übergeben möchten.

     class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Marker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Marker, Double> h){ mInflater = i; mRatingHash = h; } @Override public View getInfoContents(Marker marker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(marker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(marker.getSnippet()); RatingBar rating = (RatingBar) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(marker); rating.setRating(ratingValue.floatValue()); return v; } @Override public View getInfoWindow(Marker marker) { // TODO Auto-generated method stub return null; } } 

    Sie sind verantwortlich für alle Daten, die Sie an das Info-Fenster weitergeben möchten, aber Sie können hier sehen, dass ich einen Hash von Ratings übergeben werde. Nur ein Prototyp und ist keineswegs die beste Lösung, aber das sollte jemand anfangen.

    Ich benutze eine zusätzliche Klasse, um einige Informationen und Funktionen mit jedem Marker zu verknüpfen. Ich glaube nicht, dass dies der beste Ansatz ist, aber es ist eine Option. Besonders wenn man mehr als nur Informationen mit jedem Karten-Marker haben wollen. Hier ist die Grundstruktur, die ich dafür nutze.

     // Make an array list of for all of your things ArrayList<Thing> things; class Thing { long thing_key; String thing_string; int thingRadius; Double coord_long; Double coord_lat; Marker marker; } // Then to use this to start your list. things = new ArrayList<>(); // Create the thing object and save all the data thing = new Thing(); thing.marker = thingMarker; thing.thing_key = thing_key; thing.thing_string = thing_string; thing.radius = Integer.getInteger(thingRadius.getText().toString()); // Save the thing to the thing ArrayList things.add(thing); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.