簡體   English   中英

Android如何更改標記ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM