gpt4 book ai didi

android - 自定义 InfoWindow 仅显示 android 中列表的最后一个元素

转载 作者:行者123 更新时间:2023-11-30 02:38:28 24 4
gpt4 key购买 nike

public void marker1(final List<String> listName,
final List<String> listIllness, final List<String> listIC,
final List<String> listElderlyimage, List<String> listArduinomac,
List<String> listLat, List<String> listLong) {


Log.e("", Integer.toString(listName.size()));
for (int i = 0; i < listName.size(); i++) {
name = listName.get(i);
ic = listIC.get(i);
illness = listIllness.get(i);
Double Lat = Double.parseDouble(listLat.get(i));
Double Long = Double.parseDouble(listLong.get(i));
MarkerOptions marker = new MarkerOptions().position(new LatLng(Lat,
Long));

marker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_VIOLET));


infoWindowAdapter = new MarkerInfoWindowAdapter();
googleMap.setInfoWindowAdapter(infoWindowAdapter);
infoWindowAdapter.setName(name);
infoWindowAdapter.setIC(ic);
infoWindowAdapter.setIllness(illness);
googleMap.addMarker(marker);


}// for loop

}// marker1

这是我使用的自定义信息窗口适配器

class MarkerInfoWindowAdapter implements InfoWindowAdapter {

private View inflatedView;
private String name, ic, illness;

public void setName(String name) {
this.name = name;
}

public void setIC(String ic) {
this.ic = ic;
}

public void setIllness(String illness) {
this.illness = illness;
}

MarkerInfoWindowAdapter() {
inflatedView = getActivity().getLayoutInflater().inflate(
R.layout.custom_info_contents, null);

}

@Override
public View getInfoContents(Marker marker) {
setInfo(marker, inflatedView);
return inflatedView;
}

@Override
public View getInfoWindow(Marker marker) {
setInfo(marker, inflatedView);
return inflatedView;
}

private void setInfo(Marker marker, View view) {
TextView txtname = (TextView) view
.findViewById(R.id.txtPatientName);
TextView txtIC = (TextView) view.findViewById(R.id.txtIC);
TextView txtIllness = (TextView) view.findViewById(R.id.txtIllness);
txtname.setText(name);
txtIC.setText(ic);
txtIllness.setText(illness);
Log.e("<>", txtname.toString());
}
}

您好,我不确定为什么每当我点击标记时,它总是显示同一个人的信息。我不确定哪里出了问题。请帮我!谢谢。

最佳答案

it keeps on showing the same person information

那是因为你在MarkerInfoWindowAdapter里面只有一个“人物信息” ,而您忽略了 Marker传递给 getInfoWindow() .如果您想根据 Marker 填充信息窗口,您需要查找与该 Marker 关联的信息. This sample application显示根据 Marker 查找您的模型数据身份证。

另外,不要同时实现 getInfoWindow()getInfoContents() .只会使用一个 -- getInfoWindow()如果它返回一个非 null值,否则 getInfoContents() .在这种情况下,因为您总是返回非 null来自 getInfoWindow() 的值, getInfoContents()永远不会被调用。

此外,不要创建 InfoWindowAdapter对于每个 Marker .只有一个InfoWindowAdapter用来。在您的情况下,它将是您创建的最后一个。

关于android - 自定义 InfoWindow 仅显示 android 中列表的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26146662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com