OSM droid とそのボーナス パックを使用して、マップ上の関心のあるポイント (POI) アイコンがクリックされたときにバルーン ポップアップを作成しています。ItemizedOverlayWithBubbleをうまく機能させることができました。ただし、場合によっては、POI アイコンが非常に近くにあるため、使いたいものを自由にタップするのが難しくなります。私が考えた解決策は、POI を 1 つのアイコンにまとめ、一番上に番号を付けることでした。私はこれもうまく機能しています。
だから私がしたいのは 、小さなスクロール可能で選択可能なリストを表示するItemizedOverlayWithBubbleを持つことです。リスト内のアイテムをクリックすると、POI について詳しく説明する追加の画面が表示されます。
このチュートリアルで見つかった手がかりから、以下のコードが機能すると仮定しましたが、これは機能せず、タイトルと説明のベクトルの最後の項目のみを表示します。
これにアプローチする方法についてのアドバイスは大歓迎です。
//================================================================================================================
/**
* Adds a map information bubble with a selectable list if items.
*
* @param location The location of the info bubble on the map,
* @param titles The titles to go in the info bubble.
* @param descriptions The descriptions to go in the info bubble.
* @param mapMarkerType The map marker type.
*/
//================================================================================================================
public void addMapInfoList(GeoPoint location, Vector<String> titles, Vector <String> descriptions, int mapMarkerType)
{
new DefaultResourceProxyImpl(this.ctx);
Drawable localDrawable = getMapMarker( 8);
ArrayList<ExtendedOverlayItem> localArrayList = new ArrayList<ExtendedOverlayItem>();//items list
int i = 0;
for (String title: titles)
{
String description = descriptions.get(i);
ExtendedOverlayItem localExtendedOverlayItem = new ExtendedOverlayItem(title, description, location, this.ctx);
localExtendedOverlayItem.setImage(this.ctx.getResources().getDrawable(2130837507));
localExtendedOverlayItem.setMarkerHotspot(OverlayItem.HotspotPlace.CENTER);
localExtendedOverlayItem.setMarker(localDrawable);
localArrayList.add(localExtendedOverlayItem);
i++;
}
ItemizedOverlayWithBubble<ExtendedOverlayItem> localItemizedOverlayWithBubble = new ItemizedOverlayWithBubble<ExtendedOverlayItem>(this.ctx, localArrayList, this.map);
// ItemizedOverlayWithBubble<ExtendedOverlayItem> poiMarkers = new ItemizedOverlayWithBubble<ExtendedOverlayItem>(this, poiItems, map);
this.map.getOverlays().add(localItemizedOverlayWithBubble);
}//================================================================================================================