0

Android google-map プロジェクトで mapviewballons の使用に取り組んでいますが、上記に問題があるようです。

09-08 02:15:11.792: E/AndroidRuntime(484): FATAL EXCEPTION: main
09-08 02:15:11.792: E/AndroidRuntime(484): java.lang.NoClassDefFoundError: com.example.samplemap.CustomItemizedOverlay

私はコードをくまなく調べましたが、この問題がどこから来ているのかまだ正確にはわかりません. この問題を解決するために、あなたが余裕のある助けをいただければ幸いです。

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

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        final MapController mc = mapView.getController(); 
        mc.setZoom(16);

        List<Overlay> mapOverlays = mapView.getOverlays();
       // Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
        Drawable drawable = getResources().getDrawable(R.drawable.marker);
        CustomItemizedOverlay<CustomOverlayItem> itemizedoverlay = new CustomItemizedOverlay<CustomOverlayItem>(drawable, mapView);

        LocalGeoPoints loc = new LocalGeoPoints();
        for (CustomOverlayItem a : loc.overlayitems) {
            itemizedoverlay.addOverlay(a);
        } 
        mapOverlays.add(itemizedoverlay);


    }



public class CustomItemizedOverlay<Item extends OverlayItem> extends BalloonItemizedOverlay<CustomOverlayItem> {

    private ArrayList<CustomOverlayItem> m_overlays = new ArrayList<CustomOverlayItem>();
    private Context c = null;

    public CustomItemizedOverlay(Drawable defaultMarker, MapView mapView) {

        super(boundCenter(defaultMarker), mapView);
        c = mapView.getContext();
    }

    public void addOverlay(CustomOverlayItem overlay) {
        m_overlays.add(overlay);
        populate();
    }

    @Override
    protected CustomOverlayItem createItem(int i) {
        return m_overlays.get(i);
    }

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

    @Override
    protected boolean onBalloonTap(int index, CustomOverlayItem item) {
        Toast.makeText(c, "onBalloonTap for overlay index " + index,
                Toast.LENGTH_LONG).show();
        return true;
    }

    @Override
    protected BalloonOverlayView<CustomOverlayItem> createBalloonOverlayView() {
        // use our custom balloon view with our custom overlay item type:
        return new CustomBalloonOverlayView<CustomOverlayItem>(getMapView().getContext(), getBalloonBottomOffset());
    }

}
4

1 に答える 1

0

パブリック クラス CustomItemizedOverlay をプライベート クラスにしてください

于 2012-09-08T03:44:42.187 に答える