Question

J'ai une activité de carte qui a de nombreuses goupilles de carte et lorsque je clique sur une broche, un ballon personnalisé s'ouvre, montrant des informations sur cette broche.De plus, j'ai une barre de recherche, où si vous tapez le nom d'un bouton, l'info apparaît là-bas, mais je veux que cela passe à cette épingle de recherche. Exemple: sur la carte Vous avez différentes broches de légumes, et lorsque vous recherchez Carotte, la liste de recherche affichera l'élément carotte et lorsque vous cliquez dessus, le ballon pour la goupille de carotte seraGonflez. Donc, ma question est la suivante: y a-t-il une sorte de ONTAP () video vide?Je sais que ONTAP (INT Index) retourne un booléen.

Était-ce utile?

La solution

Créez votre propre superposition détaillée et remplacez la méthode ONTAP, ainsi que dans votre classe principale, faites une instance de la superposition détaillée et appelez superposé.ontap (point)

échantillon code:

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;
    }

    ...
}

dans la 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);
    }
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top