2017-01-13 14 views
0

사용자가 아이콘을 누를 때 ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay의 인덱스 위치를 얻으려면 어떻게해야합니까? 예를 들어, 사용자가 탭 때/...는 정수 0OSM에서 클릭 된 ItemizedIconOverlay의 인덱스를 얻는 방법

List<GeoPoint> nodes = nodeCoordinates(); 
ArrayList<OverlayItem> anotherOverlayItemArray = new ArrayList<>(); 
Drawable newMarker = getResources().getDrawable(R.drawable.marker_node); 

for(int i = 0; i < nodes.size(); i++) { 
    anotherOverlayItemArray.add(new OverlayItem("Road", "Nodes", nodes.get(i))); 
    anotherOverlayItemArray.get(i).setMarker(newMarker); 
} 

ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay 
      = new ItemizedIconOverlay<>(
      this, anotherOverlayItemArray, null); 
map.getOverlays().add(anotherItemizedIconOverlay); 

답변

1

여기에 예를 https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/samplefragments/data/SampleMilitaryIconsItemizedIcons.java

ACK, 형식 문제가 거기를 가야 첫 번째 아이콘을 클릭

`

itemOverlay = new ItemizedOverlayWithFocus <> 새 ArrayList(), 새 ItemizedIconOverlay.OnItemGestureListener() { @Overri 드 공공 부울 onItemSingleTapUp (최종 INT 지수, 최종 OverlayItem 항목) { Toast.makeText ( 상황, "항목 '"+ item.getTitle() + "'(인덱스 ="+ 인덱스 + ")는 하나의 탭 얻었다 up ", Toast.LENGTH_LONG) .show(); return true; }

     @Override 
         public boolean onItemLongPress(final int index, final OverlayItem item) { 
          Toast.makeText(
            context, 
            "Item '" + item.getTitle() + "' (index=" + index 
              + ") got long pressed", Toast.LENGTH_LONG).show(); 
          return false; 
         } 
        }, context); 

`