2011-11-16 3 views
4

У меня есть вид на карту с несколькими контактами, нанесенными на разные адреса. Все работает очень хорошо. Проблема возникает, когда у вас есть несколько элементов, указывающих на один и тот же адрес. Например,Доступный для просмотра список в OverlayItem (MapView для Android)

Unit 1/45 ABC Street, XYZ
Unit 7/45 ABC Street, XYZ.

Я использую следующую строку кода для извлечения lat и long для создания GeoPoint.

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

где a - адрес, а gc - объект GeoCoder.

Согласно API, два упомянутых выше адреса возвращают одинаковые координаты.

Таким образом, при печати штифтов на карте они переписывают друг друга, заканчивая одним выводом для нескольких адресов.

Я попытался реализовать список, отображающий все повторяющиеся адреса на воздушном шаре. попытка напрасно, и я понял, что

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

позволяет мне предоставить только две строки, которые будут показаны на воздушном шаре.

Любая подсказка относительно того, как я мог бы сжать в списке, который отображает несколько адресов?

ответ

0

Вы должны реализовать пользовательский 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 
    } 
} 
+0

Благодаря Craigy! Наверное, только начало мне нужно! Сообщите мне, как это получилось :) – Neo

+0

привет, я делаю то же самое, я заполняю список при щелчке любого наложения, даю код внутри метода onTab.everything работает fine.but, когда я выбираю список, мой список Listner не работает каждый раз , –

+0

@RajeshSharma, вы должны задать новый вопрос. Убедитесь, что вы публикуете какие-либо исключения, которые вы видите, и соответствующий код. – Craigy