私のアプリケーションでは、ViewPagerの内部にマップビューを実装しようとしています。私はアプリケーションで4つの異なるページを持っています。 MapViewは4ページ目にあります。私はマップを正常にロードしましたが、最初のページにスワイプすると、destroyItem()メソッドを使用して4番目のビューを破棄する必要があります。そして、私は4ページ目にスワイプすれば、それはlogcatでエラーを示す3ページ目からクラッシュ: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
MapActivityで唯一の単一のMapViewを持つことの意識イム。しかし、私はそれを解決することができません - 誰も私を助けることができますか?
コードは以下の通りです:Androidのビューポケットベルで
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);
}
uはで私を助けてもらえいくつかのサンプルコード? –
私は同じ問題を抱えていますが、私はこれを@Sepplの答えで試してみました。 HashMap itemList; パブリックオブジェクトinstantiateItem(のViewGroup容器、INT位置){ \t \t IF(itemList.get(位置)!= NULL){ \t \t \tリターンitemList.get(位置)。 \t \t \t \tオブジェクトviewGroup = super.instantiateItem(container、position); \t \t \t \t itemList.put(position、viewGroup); \t \t \t \t return viewGroup; \t \t \t 編集:コメントにコードを書式設定するにはどうすればよいですか? –