2017-11-17 3 views
1

infowindowからデータを渡すためにハーストマップを追加する方法は?Googleマップアンドロイドでハッシュマップを追加する方法は?

は、私は私がより多くの情報を与えることができるように、

iはhstmapと交換するMySQLデータベースの名前で新しい活動へのマーカーからのデータを表示する場合、マーカー上のユーザのプレス情報ウィンドウ

private void addMarker(LatLng latlng, final String title, final String keterangan) { 
    markerOptions.position(latlng); 
    markerOptions.title(title); 
    markerOptions.snippet(keterangan); 
    gMap.addMarker(markerOptions); 
    gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() { 
     @Override 
     public void onInfoWindowClick(Marker marker) { 
      Intent i = new Intent(Navigator.this, ScrollingActivity.class); 
      i.putExtra("title", marker.getTitle()); 
      i.putExtra("keterangan", marker.getSnippet()); 
      startActivity(i); 
     } 
    }); 
} 

答えて

0
//Define hashmap 
private HashMap<Marker, MyMarker> markerHashMap=new HashMap<>(); 

//put all markers 
markerHashMap.put(marker,mymaker); 

gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() 
{ 
@Override 
public void onInfoWindowClick(Marker marker){ 
    if(markerHashMap!=null){ 
     MyMarker myMarker=markerHashMap.get(marker); 
     Intent i=new Intent(Navigator.this,ScrollingActivity.class); 
     i.putExtra("title",myMarker.getTitle()); 
     i.putExtra("keterangan",myMarker.getSnippt()); 
     startActivity(i); 
     } 
     } 
    }); 
} 


//put your data according your requirement 
public class MyMarker { 
    private String title, snippt; 
    private double lat, lng; 

    public MyMarker(String title, String snippt, double lat, double lng) { 
     this.title = title; 
     this.snippt = snippt; 
     this.lat = lat; 
     this.lng = lng; 
     } 

    public String getTitle() { 
     return title; 
    } 

    public void setTitle(String title) { 
     this.title = title; 
    } 

    public String getSnippt() { 
     return snippt; 
    } 

    public void setSnippt(String snippt) { 
     this.snippt = snippt; 
    } 

    public double getLat() { 
     return lat; 
    } 

    public void setLat(double lat) { 
     this.lat = lat; 
    } 

    public double getLng() { 
     return lng; 
    } 

    public void setLng(double lng) { 
     this.lng = lng; 
    } 
} 
関連する問題