0

은 내가 오랫동안 안드로이드 구글 맵 V2에서 마커를 클릭 할 때 상황에 맞는 메뉴를 표시하고 싶지만 :마커를 길게 클릭하면 상황에 맞는 메뉴를 표시하려면 어떻게해야합니까?

  • 마커가 긴 클릭 이벤트를 처리하지 않습니다.
  • openContextMenu (뷰보기) 메서드는 뷰가 필요하고 어떤 항목을 전달해야할지 모르겠다. 나는이 같은 메소드를 호출하려고 :

    openContextMenu(findViewById(R.id.map)); 
    

하지만 상황에 맞는 메뉴가 열리지 않습니다. 나를하시기 바랍니다

도움말 다음에 대하여 P

+1

"마커"는 무엇을 의미합니까? –

+0

google-maps-marker – Sergio

+0

https : // developers.google.com/maps/documentation/android/marker. check event handling section – Raghunandan

답변

1

롱 클릭, 난 당신이 운이 있다고 생각한다. openContextMenu()과 관련하여

, 당신은 openContextMenu()를 호출하기 전에 ViewregisterForContextMenu()를 호출해야합니다.

상황 별 작업 표시 줄 (a.k.a., 동작 모드)을 선호하여 상황에 맞는 메뉴가 2 년 전부터 스타일을 벗어났습니다.

1

여기서 문제는 3.1.36부터 긴 클릭 수신기를 사용할 수 없다는 것입니다.

터치 다운 이벤트 시간을 저장하고 false를 반환하는 OnTouchListener가 첨부 된지도 조각을 투명하게 보려면 해킹이 될 수 있습니다.

나중에 GoogleMap.OnMarkerClickListener.onMarkerClick이 호출되면 길거나 정상적인 클릭인지를 결정할 수 있습니다. 당신이 gmaps-api-issues에 기능 요청을 제기 할 수있는 API를,의 OnMarkerLongClickListener을 가지고 우리가 필요로하는 것이 적절한 방법을

.

이 중 하나가 있으면 옵션으로 대화 상자를 표시 할 수 있지만 CommonsWare에서 제시하는 것처럼 가장 좋은 방법은 아닙니다. 아이콘을 변경하고 동작을 표시하여 마커를 선택하도록 제안하지만 선택 사항입니다. 이 페이지에서

1

봐 :

https://developers.google.com/maps/documentation/android/infowindows

당신은 OnInfoWindowClickListener (이 있기 때문에, 당신이 필요로 할 마커의 정보창을 참조 할 필요가) 당신이 정보의 클릭 이벤트를 처리 할 이는 마커를 클릭 한 것과는 다른 이벤트입니다. OnMarkerLongClickListener()의 부족을 해결하는 훌륭한 방법입니다.

난 당신이 도움이 될 수 있습니다 희망

당신은 항상 당신이 그것을 추가 할 때 무언가로 마커를 정의 설정할 수
0

예 :

@Override 
    public void onMapLongClick(LatLng point) { 

     map.clear(); 
     myMarker = map.addMarker(new MarkerOptions().position(point)); 
     Log.d("Devon", "Lat: " + point.latitude + " Lng: " + point.longitude); 
    } 

하고 onMarkerClick 메서드를 호출 할 때 다음 마커가 클릭 한 경우는 정의 된 마커와 동일하면 코드를 실행하십시오.

@Override 
    public boolean onMarkerClick(Marker marker) { 

     if (marker.equals(myMarker)) { 
      Toast.makeText(this, "Add 'Directions to here' and 'Directions From here' buttons.", Toast.LENGTH_LONG).show(); 
     } 
     return true; 
    } 
관련 문제