android mapview点击问题
我的地图上有许多标记的点,点击每个点时会弹出一个view,当我第一次加载地图的时候显示所有的标记的点,这个时候点击任何点并且弹出view都是没问题的,这时我随便点击地图中的一个标记,弹出一个view,当我输入查询条件,显示部分标记点的时候,如果再点击地图上的任何位置,都会报错,
06-01 15:54:17.341: E/AndroidRuntime(8457): FATAL EXCEPTION: main
06-01 15:54:17.341: E/AndroidRuntime(8457): java.lang.ArrayIndexOutOfBoundsException
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.ItemizedOverlay.maskHelper(ItemizedOverlay.java:562)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.ItemizedOverlay.setFocus(ItemizedOverlay.java:365)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.ItemizedOverlay.focus(ItemizedOverlay.java:539)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:455)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.OverlayBundle.onTap(OverlayBundle.java:83)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.MapView$1.onSingleTapUp(MapView.java:347)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.GestureDetector.onTouchEvent(GestureDetector.java:533)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.google.android.maps.MapView.onTouchEvent(MapView.java:647)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.View.dispatchTouchEvent(View.java:3766)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:897)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:936)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1735)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1121)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.app.Activity.dispatchTouchEvent(Activity.java:2086)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1719)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.view.ViewRoot.handleMessage(ViewRoot.java:1788)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.os.Handler.dispatchMessage(Handler.java:99)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.os.Looper.loop(Looper.java:123)
06-01 15:54:17.341: E/AndroidRuntime(8457): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-01 15:54:17.341: E/AndroidRuntime(8457): at java.lang.reflect.Method.invokeNative(Native Method)
06-01 15:54:17.341: E/AndroidRuntime(8457): at java.lang.reflect.Method.invoke(Method.java:521)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:863)
06-01 15:54:17.341: E/AndroidRuntime(8457): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
06-01 15:54:17.341: E/AndroidRuntime(8457): at dalvik.system.NativeStart.main(Native Method)
private void initMap(){
//地图
mapView = (MapView) findViewById(R.id.map_view1);
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapCtrl = mapView.getController();
//设置地图缩放的级别
mapCtrl.setZoom(12);
initPopView();
//地图悬浮层
Drawable storeMark = this.getResources().getDrawable(R.drawable.pin);
Drawable myMark = this.getResources().getDrawable(R.drawable.pin_my);
storeOverlay = new StoreItemizedOverlay(storeMark, this, mapView, popView, mapCtrl, true);
myOverlay = new StoreItemizedOverlay(myMark, this, mapView, popView, mapCtrl, false);
}
//初始化地址信息框
private void initPopView(){
if(popView == null){
popView = getLayoutInflater().inflate(R.layout.overlay_popup, null);
mapView.addView(popView
, new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT
,MapView.LayoutParams.WRAP_CONTENT
,null
,MapView.LayoutParams.BOTTOM_CENTER
));
//默认为隐藏状态
popView.setVisibility(View.GONE);
}
}