信息窗口未显示

时间:2016-09-13 01:36:14

标签: android google-maps

这真的杀了我,我让他们工作然后重写了一堆代码,现在它没有,我没有版本控制!任何帮助表示赞赏。

我在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,并附加到地图上。

2 个答案:

答案 0 :(得分:3)

要显示inforwindow,您需要致电:

marker.showInfoWindow();

请填写onMarkerClick函数。

答案 1 :(得分:0)

Brilliant phongvan!当然在某些时候我删除了这个

    else {
        marker.showInfoWindow();
    }

onMarkerClick。

Thankgod!我的应用程序变得无用! :)千万感谢phongvan。