oninfowindowclick仅在多个标记的情况下仅用于标记信息

时间:2016-05-20 23:52:39

标签: java android google-maps android-studio google-maps-markers

我创建了一个循环来创建多个标记,但是onInfoWindowClickListener适用于所有带有一个参数的标记

 for ( i = 0; i < MyArrListx.size(); i++) {

        n = Double.parseDouble(MyArrListx.get(i));
        e = Double.parseDouble(MyArrListy.get(i));
      final String phone = (MyArrListphonenumber.get(i));
         map.addMarker(new MarkerOptions().position(new LatLng(n, e)) .title("Click to Call Transporter !!").snippet( phone )
              .position(new LatLng(n, e)))
                .setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
               map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
            @Override
            public void onInfoWindowClick(Marker marker) {


                if (marker.getSnippet().equals(phone)) // if marker source is clicked
                    dialContactPhone(phone);


            }
        });

它仅调用第一个标记片段的编号,并且每个片段包含不同数字的所有时间标记。

1 个答案:

答案 0 :(得分:0)

从循环中调用sscanf,地图只有一个InfoWindowClickListener,它用于所有标记。

然后,只需从%n中的摘录中获取电话号码。

这应该足以满足您的需求:

%d

注意,如果您需要做一些比标题和片段中存储的更复杂的事情,那么使用HashMap存储您的数据,并使用标记ID作为HashMap的键,请参阅此处了解更多信息信息: https://stackoverflow.com/a/30602617/4409409