我正在调用createMarker,一旦循环运行,它就会动态添加数据。我正在使用InfoWindowAdapter添加标记选项。但是我有问题,当我单击带有 infoContent 的标记时,它不会改变。
这是我添加标记选项的方法。
public MarkerOptions createMarker(final String Date, final String Time, final String Location, final String Engine,final String Remarks, Double latitude, final Double longitude, final String Plate_num) {
System.out.println(Location + " lLocation");
mMapFragment.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
View v = getActivity().getLayoutInflater().inflate(R.layout.custom_info_contents_vehicle_map, null);
TextView plate_nu = (TextView) v.findViewById(R.id.plate_num);
TextView dat = (TextView) v.findViewById(R.id.date);
TextView tim = (TextView) v.findViewById(R.id.time);
TextView loc = (TextView) v.findViewById(R.id.location);
TextView engin = (TextView) v.findViewById(engine);
TextView remark = (TextView) v.findViewById(R.id.rema);
plate_nu.setText(Plate_num);
dat.setText(Date);
tim.setText(Time);
loc.setText(Location);
engin.setText(Engine);
remark.setText(Remarks);
return v;
}
});
return new MarkerOptions()
.position(new LatLng(latitude, longitude))
.title("Plate No.")
.snippet(Plate_num)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
}
我正在使用系统输出输出位置,它确实发生了变化。但是,在信息内容中,问题所在。我没有看到任何更改,或者如何使用上面的代码使InfoWindowAdapter
更改数据?
当您单击标记时,时间首先会隐藏您的信息窗口,并在完成工作后更改信息窗口的内容,然后在显示信息窗口之后更改信息窗口的内容。我将对您的代码进行更改,请也这样做。
mMapFragment.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(final Marker marker) {
marker.hideInfoWindow();
vm = new VehicleMap();
vm.setPlate_num(marker.getSnippet());
latitudeG = marker.getPosition().latitude;
longitudeG = marker.getPosition().longitude;
marker.showInfoWindow();
BottomSheetDialogFragment bottomSheetDialogFragment = new BottomSheetModalMapFragment(activity);
bottomSheetDialogFragment.show(getFragmentManager(), bottomSheetDialogFragment.getTag());
return true;
}
});
您不能简单地使用循环添加适配器。它不是那样工作的。 您只能设置一个信息适配器,就像任何其他适配器一样。 所以没有动态最终值的点。 您需要将标记设置为标记 根据标签值,您需要检索您的值并将其更新为信息窗口中膨胀的自定义布局。
查看我的博客以获取更多信息
请参阅类似的SO答案,其中使用getInfoContents
方法中的标记实例更新值