Передача ArrayList получил ошибку и String Array отлично работает в PagerAdapter?
Я звоню в пейджинговый адаптер из своей деятельности. Я получаю данные из JSON и передаю их в ArrayList mSlidedata
ImagePagerAdapter adapter = new ImagePagerAdapter(mContext, mSlideData);
slideShowPager.setAdapter(adapter);
slideShowPager.setCurrentItem(0);
ImagePagerAdapter - это класс, в котором я расширяю PagerAdapter. Вот код:
public class ImagePagerAdapter extends PagerAdapter {
private Context mContext;
private ImageLoader mImageLoader;
private ArrayList<SlideData> slideShowImages;
public ImagePagerAdapter(Context context, ArrayList<SlideData> mSlideShowData) {
mContext = context;
slideShowImages = mSlideShowData;
mImageLoader = new ImageLoader(mContext);
}
@Override
public int getCount() {
return slideShowImages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageViewSlideShow = new ImageView(mContext);
int padding = mContext.getResources().getDimensionPixelSize(R.dimen.padding_medium);
imageViewSlideShow.setPadding(padding, padding, padding, padding);
imageViewSlideShow.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
mImageLoader.DisplayImage(ServiceURLs.URL+slideShowImages.get(position).photo_name, R.drawable.loading, imageViewSlideShow);
((ViewPager) container).addView(imageViewSlideShow, 0);
return imageViewSlideShow;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
вот весь код, который я использую для реализации PagerAdapter
Проблема: при запуске активности первый раз запускает нормально, но когда я возвращаюсь и перезагружаю операцию снова, ошибка
LogCat Подробнее:
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged!
Expected adapter item count: 10, found: 0 Pager id: com.akm.demo.activities:id/slideShowPager Pager class: class android.support.v4.view.ViewPager
Альтернативное решение: передача ArrayList в String Array
for (int i = 0; i < mSlideData.size(); i++)
{
slideImagesArray[i] = ServiceURLs.URL+mSlideData.get(i).photo_name;
}
adapter = new ImagePagerAdapter(mContext, imagesStringArray);
slideShowPager.setAdapter(adapter);
slideShowPager.setCurrentItem(0);
Работает нормально, никаких проблем не возникает из String Array.
Итак, почему проблема возникает во время ArrayList и String Array работает нормально ??