Domanda

Ho un'attività di mappa che ha molti pin della mappa, e quando faccio clic su un PIN, un palloncino personalizzato si apre, mostrando alcune informazioni su quel perno.Inoltre, ho una barra di ricerca, dove se digiti il nome di una manopola, le informazioni appaiono lì, ma voglio che vada su quel perno di ricerca. Esempio: Sulla mappa Hai diversi perni di verdure e quando si cerca carota, l'elenco di ricerca mostrerà la carota dell'elemento, e quando fai clic su di esso, il palloncino per il perno di carotagonfiare. Quindi, la mia domanda è: c'è una sorta di ONTAP () Metodo Void?Lo so, quello ONTAP (INT INDICE) restituisce un booleano.

È stato utile?

Soluzione

Crea la tua sovrapposizione dettagliata e sovrascrivere il metodo ONTAP e nella Classe principale, crea un'istanza della sovrapposizione dettagliata e della chiamata overlay.ontap (punto)

Codice campione:

public class MyItemizedOverlay<Item> extends ItemizedOverlay<OverlayItem> {
    private ArrayList<OverlayItem> m_overlays;
    private MapView mapView;
    final MapController mc;

    public MyItemizedOverlay(Drawable defaultMarker, MapView mapView) {
        super(boundCenterBottom(defaultMarker), mapView);
        m_overlays = new ArrayList<OverlayItem>();
        mc = mapView.getController();
        populate();
    }

    public void addOverlay(OverlayItem overlay) {
        m_overlays.add(overlay);
        setLastFocusedIndex(-1);
        populate();
    }

    public ArrayList<OverlayItem> getOverlays() {
        return m_overlays;
    }

    public final boolean onTap(int index) {
        GeoPoint point;
        point = createItem(index).getPoint();
        mc.animateTo(point);    
        return true;
    }

    ...
}
.

nella classe principale

public class Main extends MapActivity {
    private MapView mapView;
private List<Overlay> mapOverlays;
    private MyItemizedOverlay overlay;
private Drawable pin;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        doAction();
    }

    private void doAction() {
    mapView = (MapView)findViewById(R.id.map_view);
        pin = res.getDrawable(R.drawable.pin);

        overlay = new MyItemizedOverlay(pin, mapView);

        GeoPoint point = new GeoPoint((int)(7*1E6),(int)(42*1E6));
        overlayItem = new OverlayItem(point, "title", "text");

    overlay.addOverlay(overlayItem);

        mapOverlays = mapView.getOverlays();
    mapOverlays.add(overlay);

        //we tap the point here
        overlay.onTap(0);
    }
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top