在我的应用程序中,我试图在 ViewPager 中实现地图视图。我在应用程序中有 4 个不同的页面。MapView 在第 4 页。我确实成功加载了地图,但是当我滑回第一页时,必须使用 destroyItem() 方法销毁第四个视图。如果我滑动到第 4 页,它会从第 3 页崩溃,在 logcat 中显示错误:
05-10 13:14:50.152: E/AndroidRuntime(620): java.lang.IllegalStateException: You are only allowed to have a single MapView in a MapActivity
我知道 MapActivity 中只有一个地图视图。但我无法解决它 - 任何人都可以帮助我吗?
代码如下:
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
context = collection.getContext();
int resId = 0;
int flag = resId;
switch (position) {
case 0:
resId = R.layout.farleft; // first
view = inflater.inflate(resId, null);
break;
case 1:
resId = R.layout.left; // second
view = inflater.inflate(resId, null);
break;
case 2:
resId = R.layout.right; // third
view = inflater.inflate(resId, null);
break;
case 3:
resId = R.layout.mylocator;
view = inflater.inflate(resId, null);
break;
}
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
Log.d("destroyItem", "" + arg2);
}