我创建了一个循环来创建多个标记,但是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);
}
});
它仅调用第一个标记片段的编号,并且每个片段包含不同数字的所有时间标记。
答案 0 :(得分:0)
从循环中调用sscanf
,地图只有一个InfoWindowClickListener,它用于所有标记。
然后,只需从%n
中的摘录中获取电话号码。
这应该足以满足您的需求:
%d
注意,如果您需要做一些比标题和片段中存储的更复杂的事情,那么使用HashMap存储您的数据,并使用标记ID作为HashMap的键,请参阅此处了解更多信息信息: https://stackoverflow.com/a/30602617/4409409