1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. Unicate, 07.10.2010 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Hi alle zusammen!

    Ich habe mich mal an dem Tutorial versucht.
    Ich bekomme es einfach nicht hin, das dieser Androide auf der Map mit dargestellt wird.

    Hier mal der Code:
    Die ItemizedOverlay<OverlayItem>:
    PHP:
    package de.unicate.android.maptest;

    import java.util.ArrayList;

    import android.app.AlertDialog;
    import android.content.Context;
    import android.graphics.drawable.Drawable;

    import com.google.android.maps.ItemizedOverlay;
    import com.google.android.maps.OverlayItem;

    public class 
    MyOverlayCollection extends ItemizedOverlay<OverlayItem> {

        private 
    ArrayList<OverlayItem_overlays = new ArrayList<OverlayItem>();
        private 
    Context _context;

        public 
    MyOverlayCollection(Drawable defaultMarkerContext context) {
            
    super(defaultMarker);
            
    _context context;
        }

        @
    Override
        
    protected OverlayItem createItem(int i) {
            return 
    _overlays.get(i);
        }

        @
    Override
        
    public int size() {
            return 
    _overlays.size();
        }

        public 
    void addOverlay(OverlayItem item) {
            
    _overlays.add(item);
            
    populate();
        }

        @
    Override
        
    protected boolean onTap(int index) {
            
    OverlayItem item _overlays.get(index);
            
    AlertDialog.Builder dialog = new AlertDialog.Builder(_context);
            
    dialog.setTitle(item.getTitle());
            
    dialog.setMessage(item.getSnippet());
            
    dialog.show();
            return 
    true;
        }
        
    }
    Und hier meine MapActivity:

    PHP:
    package de.unicate.android.maptest;

    import java.util.List;

    import android.os.Bundle;

    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
    import com.google.android.maps.Overlay;
    import com.google.android.maps.OverlayItem;

    public class 
    MapTestActivity extends MapActivity {
        
    /** Called when the activity is first created. */
        
    @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
    super.onCreate(savedInstanceState);
            
    setContentView(R.layout.main);
            
    MapView mapView = (MapViewfindViewById(R.id.mapview);
            
    mapView.setBuiltInZoomControls(true);
            
    GeoPoint geoPoint = new GeoPoint(51081597,13748922);
            
    mapView.setSatellite(false);
            
    MapController myMC mapView.getController();
            
    myMC.setCenter(geoPoint);
            
    myMC.setZoom(10);

            
            List<
    Overlayitems mapView.getOverlays();
            
    MyOverlayCollection stations = new MyOverlayCollection(getResources().getDrawable(R.drawable.androidmarker), this);
            
    OverlayItem overlayitem = new OverlayItem(geoPoint"Hallo, Dresden!""Hier ist Dresden");
            
    stations.addOverlay(overlayitem);        
            
    items.add(stations);        
        }
        @
    Override
        
    protected boolean isRouteDisplayed() {
            return 
    false;
        }
    }
    Die Map ansich wird angezeigt, aber der Marker nicht.
    Dabei ist das Tutorial fast 1:1 kopiert.
    Was mach ich falsch?
     
  2. FelixL, 09.10.2010 #2
    FelixL

    FelixL Ehrenmitglied

    Kannst du ein Logcat posten? Vielleicht taucht da ne Fehlerbeschreibung auf.

    Edit: versuch es doch einfach mal mit
    public class MyOverlayCollection implements ItemizedOverlay<OverlayItem> {
    statt
    public class MyOverlayCollection extends ItemizedOverlay<OverlayItem> {
     
    Zuletzt bearbeitet: 09.10.2010

Diese Seite empfehlen