2016-12-13 4 views
0

OSMbonus 패킷을 사용하는 앱을 만들고 있습니다. 지도에 설명이 포함 된 표식을 추가했습니다. 마커 중 하나를 클릭하면 설명 상자가 표시됩니다.기본 동작을 재정의하지 않고 OSMbonuspacket Marker의 setOnMarkerClickListener를 확장하는 방법은 무엇입니까?

이제 마커를 두 드릴 때 다른 기능을 호출하고 싶습니다. 토스트를 보여주고 싶다고합시다. 마커를 클릭하면

marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker, MapView mapView) { 
     Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
}); 

이가 토스트를 보여줍니다 그래서 나는 다음과 같은 setOnMarkerClickListener() 기능을 추가했습니다. 그러나 설명 상자는 더 이상 표시되지 않습니다. 나는 기본 동작을 무시하고 있다고 생각합니다. 이 기능과 함께. 한 번 Google지도 통합 앱을 만들었고 문제없이 동일한 작업을 수행했습니다.

누구나 OSMbonus 패킷으로이를 수행하는 방법을 알고 있습니까? 이 같은 osmdroid 모양의 마커에 대한

+1

을 super.OnMarkerClick (마커,지도보기) – spy

+0

을 돌아보십시오 @ 스파이, 네 제안에 고마워. 내 inMarkerClick (...) 함수에서'false' 대신'super.onMarkerClick (marker, mapView);를 반환하려고했습니다. 그게 당신이 옳은 말이야? 그러나 컴파일러는이 함수가 존재하지 않는다고 말합니다 : ( –

답변

2

기본 클릭 리스너 : 그래서

protected boolean onMarkerClickDefault(Marker marker, MapView mapView) { 
    marker.showInfoWindow(); 
    if(marker.mPanToView) { 
     mapView.getController().animateTo(marker.getPosition()); 
    } 

    return true; 
} 

, 당신은 다음과 같이 리스너를 재정의 할 수

marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker, MapView mapView) { 
     marker.showInfoWindow(); 
     mapView.getController().animateTo(marker.getPosition()); 
     Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show(); 
     return true; 
    } 
});