没有获得我期望的Marker对象

时间:2016-04-07 15:26:02

标签: android google-maps-markers google-maps-android-api-2

在第一个onLocationChanged事件allback上,我将带有当前位置的Marker添加到我的地图中,该方法返回Marker个实例。我将该实例保存到变量中,但是当我点击标记的InfoWindow时,传递给我的标记是另一个对象,因此if(savedMarker != marker)始终为真。

相关的实际代码:

onLocationChanged:

@Override
public void onLocationChanged(Location location) {
    if(mMyPos == null) {
        mMyPos = mMap.addMarker(new MarkerOptions().position(new LatLng(location.getLatitude(), location.getLongitude()))
                .title("MyPos")
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(locationToLatLng(location), 15));
    }
    mMyPos.setPosition(new LatLng(location.getLatitude(), location.getLongitude()));
}

onInfoWindowClick:

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
            if(marker != mMyPos) {
                doSomething();
            }
        }
    });
}

如果我将条件更改为if(!marker.getTitle().equals(mMyPos.getTitle()))它有效,但我真的不喜欢这样。有什么想法吗?

0 个答案:

没有答案