我正在按照本教程创建一些不同的东西,本教程展示了覆盖如何与插入其中的预定义项目一起工作,但是如果我想动态地向其中添加项目怎么办?那么我必须从一个空的覆盖开始:
代替 :
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
ItemOverlay itemizedoverlay = new ItemOverlay(drawable, this);
GeoPoint point = new GeoPoint(19240000,-99120000);
OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
就像教程中预期的那样工作,我需要把这个:
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker);
ItemOverlay itemizedoverlay = new ItemOverlay(drawable, this);
mapOverlays.add(itemizedoverlay);
它用一个项目省略了覆盖的初始化。
这种方法会导致地图卡住,点击几下后,我的应用由于 null 异常而被踢出。
1.这是预期的行为吗?这对我来说似乎是一个错误......
2.为了达到预期的行为,我该怎么做?(我可以从一个空的覆盖开始并动态添加项目)
至于我想要实现的,不是用和项目启动覆盖而是动态使用addOverlay,这样我可以