【问题标题】:Clickable List within OverlayItem (MapView for Android)OverlayItem 中的可点击列表(Android 的 MapView)
【发布时间】:2011-11-16 01:07:08
【问题描述】:

我有一个地图视图,其中有几个大头针绘制在不同的地址上。一切都很好。 当您有多个项目指向同一个地址时,就会出现问题。 例如,

1/ 45 ABC Street, XYZ
单位 7/ 45 ABC 街,XYZ。

我使用以下代码行来获取纬度和经度以创建 GeoPoint。

List<Address> listfromGoogle = gc.getFromLocationName(a, 1);

其中 a 是地址,gc 是 GeoCoder 对象。

根据 API,上面提到的两个地址返回相同的坐标。

因此,在地图上绘制图钉时,它们会相互覆盖,最终以一个图钉用于多个地址。

我尝试实现一个在气球上显示所有重复地址的列表。 尝试是徒劳的,我意识到

OverlayItem(GeoPoint point, java.lang.String title, java.lang.String snippet) 

只允许我提供要在气球上显示的两个字符串。

关于如何挤入显示多个地址的列表的任何线索?

【问题讨论】:

    标签: android listview android-mapview overlayitem


    【解决方案1】:

    你应该实现一个自定义的 OverlayItem

    public class ListOverlayItem extends OverlayItem {
        private List<Address> list;
    
        public ListOverlayItem(GeoPoint point, List<Address> list) {
            super(point, "", "");
        }
    
        public List<Address> getList() {
            return list;
        }
    }
    

    然后在您的自定义 ItemizedOverlay 中,您可以使用此列表创建一个自定义对话框,其中包含 onTap 方法中的列表

    public class ListItemizedOverlay extends ItemizedOverlay<ListOverlayItem> {
    
        @Override
        protected boolean onTap(int index) {
            // get item they tapped from index
            // use getList() to populate the listview in the custom dialog
        }
    }
    

    【讨论】:

    • 感谢克雷吉!可能只是我需要的开始!会告诉你进展如何:)
    • 嗨,我也是这样做的,单击任何覆盖项时我会填充一个列表,在 onTab 方法中提供代码。一切正常。但是当我选择列表时,我的列表 Listner 每次都无法正常工作。
    • @RajeshSharma 你应该发布一个关于这个的新问题。确保发布您看到的任何异常和相关代码。
    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多