theodoros8 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 Γεια σας! Θελω την βοήθεια σας σε ενα θεματακι που έχω. Έχω ένα χαρτη και μεσω JSON φορτώνω πολλους markers στο χάρτη. Οι markers της google παιρνουν μόνο ως παραμετρο τιτλο,υποτιτλο και το id τους. Θελω να προσθεσω μερικες επιπλεον πληροφοριες στο καθε marker πχ, φωτογραφια(προσοχη οχι icon). Λιγο κωδικας. Parse JSON: try{ JSONArray jArray = new JSONArray(result); for(int i=0; i < jArray.length(); i++) { JSONObject jObject = jArray.getJSONObject(i); String title = jObject.getString("title"); String description=jObject.getString("description"); double lat=jObject.getDouble("lat"); double lng=jObject.getDouble("lng"); String image=jObject.getString("image"); int mID=jObject.getInt("id"); addMarkersToMap(mID,title,description,lat,lng,image); } // End Loop } catch (JSONException e) { Log.e("JSONException", "Error: " + e.toString()); } // catch (JSONException e) Μεχρι εδω ολα καλα. Κανω Parse JSON απο το σερβερ μου και για καθε object τοποθετω ενα marker. addMarkersToMap private void addAlertsToMap(id,title,description,lat,lng,image){ Markers = theMap.addMarker(new MarkerOptions() .position(jLocation) .title(jTitle) .snippet(jDescription) .icon(BitmapDescriptorFactory.fromResource(icon)); theMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { @Override public void onInfoWindowClick(Marker arg0) { } }); Και εδω μεχρι καλα. Τα marker τοποθετουνται μια χαρα στο χαρτη. Τωρα το προβλημα. Για κάθε κλικ(touch) σε ενα marker, θα πρεπει να ξερω ποιο ειναι αυτο που ο χρηστης ακουμπησε, ωστε να ανοιξω ενα νεο intent με περισσοτερες πληροφοριες για αυτο το marker. Για να το κανω αυτο θα πρεπει να εχω προσθεσει εξτρα πληροφοριες. Ετσι πρεπει να συνδεσω το ID απο τη JSOΝ στο id του marker και εκει να "βαλω" εξτρα πληροφοριες. Σκεφτηκα HashMaps αλλα κατι δεν μπορουσα να κανω σωστο. Καμια ιδεα?
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 HashMap<Marker, int> markerData = new HashMap<Marker, int>(); μετα @Override public View getInfoContents(Marker mark) { if(markerData.containsKey(mark)){ int jsonid = markerData.get(mark) ... φτιαχνεις view με ο,τι θες και το κάνεις return } return null; }
theodoros8 Δημοσ. 13 Φεβρουαρίου 2014 Μέλος Δημοσ. 13 Φεβρουαρίου 2014 Ευχαριστω φιλε μου. Σχεδον βρηκαμε την λυση μαζι. Το προβλημα μου ηταν οτι δηλωνα το hashmap μεσα στην ιδια addAlertsToMap αρα για καθε λοοπ της json την δηλωνε παλι απο την αρχη με αποτελεσμα να αποθηκευεται η τελευταια τιμη μονο. Μεταφερα το hashmap στην αρχη της class και ολα οκ. Ευχαριστω!
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 απλά να ξέρεις οτι το view που φτιάχνεις μετατρέπεται σε εικόνα οπότε αν βάλεις κουμπιά κλπ δεν θα δουλεύουν 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα