这真的杀了我,我让他们工作然后重写了一堆代码,现在它没有,我没有版本控制!任何帮助表示赞赏。
我在Utility类中创建标记。
private static MarkerOptions buildAmarker(LatLng location, String bankType, String locationDetails,
float markerColour) {
MarkerOptions binMarker = new MarkerOptions().position(location).title(bankType)
.snippet(locationDetails)
.icon(BitmapDescriptorFactory.defaultMarker(markerColour));
//.snippet(siteName + " | " + locationDetails);
return binMarker;enter code here
然后在我的Loader完成后,onLoadFinish,它将我的标记选项对象的各种列表交给我,我将它们处理为标记:
private List<Marker> addBankListToMap(List<MarkerOptions> oneBankList) {
Log.i("ADDING a selected", "banks list to map");
// we need to save NEW lists of map attached markers OR can't change marker visibility
List<Marker> newBankList = new ArrayList<>();
for (int i = 0; i < oneBankList.size(); i++) {
MarkerOptions binMarker = oneBankList.get(i);
Marker newMarker = m_map.addMarker(binMarker);
newMarker.setVisible(true);
newBankList.add(newMarker);
//Log.e("!!!addingBank", newMarker.getTitle() + newMarker.getSnippet());
}
return newBankList;
然后用这个
结束onLoadFinish// setup click event for home marker to launch change home screen
m_map.setOnMarkerClickListener(EarthquakeActivity.this);
但是如果点击则不会显示任何信息窗口。我错过了什么?它一直工作,直到我重写了我的代码,并且我做了很多改进的算法,我使用数组而不是六个哈希映射,因此内存开销应该更少。
我只能认为我已经删除了一些在疲倦时整洁的东西。 要么 我以某种方式阻止了信息窗口。通过禁用更改来查找块的一些调查失败了。所以我似乎删除了一些东西,忘记了一些重要的东西。
要让infoWindows再次运作,我需要做些什么?这对我的应用来说绝对至关重要。 Arrggg!
@Override
public boolean onMarkerClick(Marker marker) {
if (marker.equals(homeMarkerFinal)) {
// TODO make this launch the change home address screen
Log.wtf("markerClicked", "!!!!");
Intent settingsIntent = new Intent(EarthquakeActivity.this, SettingsActivity.class);
startActivity(settingsIntent);
}
return true;
}
这仅适用于单个标记,即主标记。所有其他标记都是未命名的,我有大约4000个标记作为MarkerOptions存储在列表中。这些列表作为oneBankList传递给addBankListToMap并转换为Markers,并附加到地图上。
答案 0 :(得分:3)
要显示inforwindow,您需要致电:
marker.showInfoWindow();
请填写onMarkerClick
函数。
答案 1 :(得分:0)
Brilliant phongvan!当然在某些时候我删除了这个
else {
marker.showInfoWindow();
}
onMarkerClick。
Thankgod!我的应用程序变得无用! :)千万感谢phongvan。