-1
我正在使用谷歌地图上的自定义标记,但我只有一个疑问,为什么列表中的标记细节不会进入GoogleMap.InfoWindowAdapter,因为当时我在默认标记上显示数据时所有数据都完美显示。为什么GoogleMap.InfoWindowAdapter里面的标记列表不起作用?
for (int i = 0; i < mStringLocation.getMerchants().size(); i++) {
double latitude = mStringLocation.getMerchants().get(i).getLocation().getLatitude();
double longitude = mStringLocation.getMerchants().get(i).getLocation().getLongitude();
final String name = mStringLocation.getMerchants().get(i).getName();
LatLng latLng1 = new LatLng(latitude, longitude);
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_icon));
markerOptions.position(latLng1);
//markerOptions.title(name);
map.addMarker(markerOptions);
map.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View view = getActivity().getLayoutInflater().inflate(R.layout.map_marker_layout, null);
mNameTxt = (TextView) view.findViewById(R.id.name_txt);
Toast.makeText(getActivity(), "" + name, Toast.LENGTH_SHORT).show();
mNameTxt.setText(name);
return view;
}
});
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(getActivity(), "" + name, Toast.LENGTH_SHORT).show();
}
});
}
但是,当我使用自定义标记在那个时候,如果你在任何标记的挖掘,然后它会显示数组的最后一个索引值。
请通过我的帖子,让我知道你是否有任何解决方案。
您的问题中没有代码说明“如果您点击任何标记,那么它将显示数组的最后一个索引值”。 – CommonsWare
嘿感谢没有简单的默认标记,如果你点击任何项目,它会显示细节,但当我在GoogleMap.InfoWindowAdapter里面做的时候,如果你点击任何项目,它会显示最后的值 –
你可能有一个更容易获得如果你编辑你的问题并提供代码“如果你点击任何标记,那么它将显示数组的最后一个索引值”。我猜想这是你的'OnInfoWindowClickListener'的'onInfoWindowClick()'方法。您可以在[本活动]中看到一个示例'onInfoWindowClick()'方法(https://github.com/commonsguy/cw-omnibus/blob/master/MapsV2/Popups/app/src/main/java/com/commonsware /android/mapsv2/popups/MainActivity.java)[https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2/Popups]。 – CommonsWare