我有一个带谷歌地图的应用,其中包含一些带有个性化InfoWindowAdapter
[1]的标记。
这很好但现在我想添加一些标记,我不假装使用相同的个性化infoWindow。默认设置为OK。问题是,当我点击最后添加的标记之一时,我收到错误:java.lang.arrayindexoutofboundsexception length=1 index=1
。我认为这是因为这些新标记使用了第一个标记的自定义infoAdapter
,所以我的问题是:如何使用默认infoAdapter
设置最后一个标记?
我已阅读:'要替换默认信息窗口,请使用自定义呈现覆盖getInfoWindow(Marker)
,并为getInfoContents(Marker)
返回null。要仅替换默认信息窗口框内的信息窗口内容(标注气泡),请在null
中返回getInfoWindow(Marker)
并覆盖getInfoContents(Marker)
而不是'尝试类似[2]的东西,但没有成功。
有人知道如何解决这个问题吗?
[1]
private class poisInfoWindowAdapter implements InfoWindowAdapter {
@Override
public View getInfoWindow(Marker arg) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
String SnippetContent = marker.getSnippet();
String[] parts = SnippetContent.split("//");
// Get Layout of POI's popup's and assign JSON values to text views.
View InfoPopupLayout = getLayoutInflater().inflate(R.layout.infopopup,null);
TextView t = ((TextView) InfoPopupLayout.findViewById(R.id.title));
t.setText(marker.getTitle());
TextView p = (TextView) InfoPopupLayout.findViewById(R.id.parking);
p.setText(getString(R.string.parking_pwd) + convertInfoPoisValues(parts[2]));
return InfoPopupLayout;
}
}
[2]
private class poisInfoWindowAdapter implements InfoWindowAdapter {
@Override
public View getInfoWindow(Marker arg) {
return null;
}
@Override
public View getInfoContents(Marker marker) {
if (marker.getTitle() == "Obstáculo") {
return null;
}
else {
String SnippetContent = marker.getSnippet();
String[] parts = SnippetContent.split("//");
// Get Layout of POI's popup's and assign JSON values to text views.
View InfoPopupLayout = getLayoutInflater().inflate(R.layout.infopopup,null);
TextView t = ((TextView) InfoPopupLayout.findViewById(R.id.title));
t.setText(marker.getTitle());
TextView p = (TextView) InfoPopupLayout.findViewById(R.id.parking);
p.setText(getString(R.string.parking_pwd) + convertInfoPoisValues(parts[2]));
return InfoPopupLayout;
}
}
}
答案 0 :(得分:0)
修正了,我只需要在'(marker.getTitle()==“Obstáculo”)'中使用'equals'。