[英]android how change marker id
我從mysql數據庫中獲得標記的數據,例如title和id:
@Override
protected void onPostExecute(List<HashMap<String, String>> result) {
for(int i=0; i<result.size();i++){
HashMap<String, String> marker = result.get(i);
LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")), Double.parseDouble(marker.get("lng")));
String T = marker.get("name");
String pid = marker.get("pid");
addMarker(latlng, T, pid);
}
然后我將標記添加到地圖:
private void addMarker(LatLng latlng,String T, String pid) {
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(latlng);
markerOptions.title(T);
map.addMarker(markerOptions);
}
但是現在我必須將帶有標題的ID發送到下一個活動:
@Override
public void onInfoWindowClick(Marker m) {
Intent nextScreen = new Intent (Map.this, Detail.class);
String title = m.getTitle();
nextScreen.putExtra("name", title);
startActivityForResult(nextScreen, 101);
}
那么發送ID的解決方案是什么?
您可以使用以下庫:
https://code.google.com/p/android-maps-extensions/
它具有名為setData()
和getData()
,您還需要創建自定義類,其中包含需要在其中發布的數據
public class MarkerData{
int ID ;
String title ;
double lng , lat
}
並在創建HashMap
中將為每個標記保存類中的對象:
HashMap<String, MarkerData> marker
簡單而糟糕的方式...
您在摘要中聲明用“#”除
mMap.addMarker(new MarkerOptions().position(
new LatLng(LATITUDE,
LONGITUDE)
)
).title(gap.getName())
.icon(icon)
.snippet(YOUR_ID+"#"+snippetstring)
);
為了讓您獲得價值,您可以使用SPLIT
@Override
public View getInfoContents(Marker marker) {
View popup=inflater.inflate(R.layout.popup, null);
TextView tv=(TextView)popup.findViewById(R.id.title);
String[] separated = marker.getSnippet().split("#");
String id = separated[0];
String snippet = separated[1];
tv.setText(marker.getTitle());
tv = (TextView)popup.findViewById(R.id.snippet);
tv.setText(snippet);
return(popup);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.