那我怎么知道哪个标记点击了?

时间:2015-03-19 08:53:25

标签: android google-maps

我想打开一个关于单击Marker的新Activity。但我不能。因为标记是自动添加的,我从数据库获得坐标。

我如何知道点击哪个标记?

for(int i=0; i<all.size();i=i+4){    
    // her kaydin id,lat,lng,title bilgisi alinip ArrayListe atiliyor..

    Double latDouble = Double.parseDouble(all.get(i+1));  
    Double lngDouble = Double.parseDouble(all.get(i+2));

    map.addMarker(new MarkerOptions().position(new LatLng(latDouble, lngDouble)).snippet(all.get(i).toString()).title(all.get(i+3)));

3 个答案:

答案 0 :(得分:0)

添加&#34; ID&#34;添加到每个标记。

然后,实现OnMarkerClickListener。正如文件中所述:

  

&#34;您可以使用OnMarkerClickListener监听点击事件   标记。要在地图上设置此侦听器,请调用   GoogleMap.setOnMarkerClickListener(OnMarkerClickListener)。当一个用户   点击一个标记,onMarkerClick(Marker)将被调用   标记将作为参数传递。&#34;

您将收到一个&#34; Marker&#34; OnMarkerClickListener中的对象。比较&#34; ID&#34; s。

答案 1 :(得分:0)

如果您知道数据的顺序,则可以获取标记的顺序并匹配它们。 我的意思是,你的第一行数据库代表id为= 0的标记。 您可以获得这样的标记的ID。

    int order = Integer.parseInt(marker.getId().substring(1));

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {

        @Override
        public void onInfoWindowClick(Marker marker) {

            int order = Integer.parseInt(marker.getId().substring(1));
        }
    });

答案 2 :(得分:0)

您可以使用OnMarkerClickListener,但如果您不希望每个标记中都有听众且信息位于标记中,则可以使用OnInfoWindowClickListener,如下所示:

getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
    public void onInfoWindowClick(Marker marker) {
        // here you have the Marker to start the activity, for example:
        String url = marker.getTitle();
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(url));
        startActivity(i);
    }
});