我有一個應用程序與谷歌地圖包含幾個標記與個性InfoWindowAdapter
[1]。 這很好,但現在我想添加更多的標記,並且我不假裝使用相同的個性化信息窗口。對此,默認是OK。問題是當我點擊最後添加的標記中的一個時,出現錯誤:java.lang.arrayindexoutofboundsexception length=1 index=1
。我認爲會發生這種情況,因爲這些新標記正在使用第一個標記的自定義infoAdapter
,所以我的問題是:我如何設置默認的infoAdapter
的最後一個標記?GoogleMap.InfoWindowAdapter自定義和默認
我讀過:'要替換默認的信息窗口,請用您的自定義渲染覆蓋getInfoWindow(Marker)
,並返回空值爲getInfoContents(Marker)
。要僅替換默認信息窗口框架(標註泡泡)內的信息窗口內容,請返回null
in 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;
}
}
}