2017-01-13 6 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 =新しいItemizedOverlayWithFocus <>(新しいArrayListを()、 新しいItemizedIconOverlay.OnItemGestureListener(){ @Overriデ パブリックブールonItemSingleTapUp(最終int型のインデックス、最終OverlayItemアイテム){ Toast.makeText( コンテキスト、 "アイテム '" + item.getTitle()+ "'(インデックス=" +指数 +」)は、単一のタップ得up "、Toast.LENGTH_LONG).show(); が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); 

`

関連する問題