viewpager的instantiateItem方法position怎么不从零开始

knxw0001 2013-12-16 11:08:18
activityA中用到了viewpager,viewpager是动态操作view,跳到activityB后,再跳回来A,viewpager的instantiateItem方法的position就不从零开始了,导致数组越界。

代码如下:

public class AdvertAdapter extends PagerAdapter {

private LinkedList<Advert> adverts;
private Context mContext;
private ArrayList<View> imagePageViews;

public HomeAdvertAdapter(Context mContext, LinkedList<Advert> adverts) {
this.adverts = adverts;
this.mContext = mContext;

imagePageViews = new ArrayList<View>();
}

@Override
public int getCount() {
return adverts.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView(imagePageViews.get(arg1));
}

@Override
public Object instantiateItem(View arg0, final int position) {
ImageView imageView = new ImageView(mContext);
imageView.setScaleType(ScaleType.FIT_XY);

imagePageViews.add((imageView));

((ViewPager) arg0).addView(imagePageViews.get(position));

return imagePageViews.get(position);
}
}
...全文
224 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧