В моем приложении я пытаюсь реализовать вид карты внутри ViewPager. У меня есть 4 разных страницы в приложении. и MapView находится на 4-й странице. Я успешно загрузил карту, но когда я вернусь на первую страницу, четвертое представление должно быть уничтожено с помощью метода destroyItem(). И если я красть на 4-й странице, он выходит из строя из 3-й странице показывает ошибку в LogCat:MapView не удаляется из ViewPager?
05-10 13:14:50.152: E/AndroidRuntime(620): java.lang.IllegalStateException: You are only allowed to have a single MapView in a MapActivity
Im знают иметь только один MapView в 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);
}
Может у пожалуйста, помогите мне с некоторый пример кода? –
У меня такая же проблема, и я пробовал это с ответом @Seppl без успеха: HashMap itemList; instantiateItem общественного объекта (ViewGroup контейнер, внутр положение) { \t \t если { \t \t \t возвращение itemList.get (положение) (itemList.get (положение)! = NULL); \t \t} \t \t Объект viewGroup = super.instantiateItem (контейнер, позиция); \t \t \t \t itemList.put (position, viewGroup); \t \t \t \t return viewGroup; \t \t \t} EDIT: Как я могу форматировать код в комментарии? –