Social Icons

2013年4月29日 星期一

今天我學到 - PagerAdapter (ViewPager) throwing IndexOutOfBounds exception

今天在重新組織一段程式碼的時候,程式一直發生當機的情形,看了一下 called stack,發現程式中使用了ViewPager,其中PagerAdapter的instantiateItem函數裡的((ViewPager)collection).addView會讓程式當掉,丟出IndexOutOfBounds的例外,查了一下發現不能像下面這樣使用:

  public Object 
  instantiateItem(View collection, int position) 
  {
                        ...
   ((ViewPager)collection).addView(view, position);
   return view;
  }

要改成這樣才行:
  public Object 
  instantiateItem(View collection, int position) 
  {
   ...
   ((ViewPager)collection).addView(view, 0);
   return view;
  }
. 不過詳細原因是什麼,我也不清楚。在原本的計劃中這樣使用是一點問題也沒有的,但是同樣的程式碼在做Refacting的時候就不行了!

沒有留言:

張貼留言