I am having a ViewPager
in my android app,I want to display the particular info with each image that i swipe with the ViewPager
,But i am getting the wrong info or position inside ViewPager
, it increments and decrements not properly in position,It first increments by two times,Please help me to solve it,My code is as below:
code:
private class ImagePagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return subcategory.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = DetailsActivity.this;
ImageView imageView;
imageView = new ImageView(context);
try {
int padding = context.getResources().getDimensionPixelSize(
R.dimen.padding_medium);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
area.setText(subcategory.get(position).get(
Const.TAG_CATAEGORY_NAME));
System.out
.println("::::::::::::::::INFO INDEX:::::::::::::::::"
+ position);
imageLoader.displayImage(
subcategory.get(position).get(Const.TAG_BIG_IMG),
imageView, options);
System.out
.println("::::::::::::::::IMAGE INDEX:::::::::::::::::"
+ position);
opkey1.setText(subcategory.get(position).get("opk1"));
opkey2.setText(subcategory.get(position).get("opk2"));
opval1.setText(subcategory.get(position).get("opv1"));
opval2.setText(subcategory.get(position).get("opv2"));
((ViewPager) container).addView(imageView, 0);
} catch (NotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
ViewPager will preload one(by default) pager,so when the user can swipe smoothly. See
ViewPager.setOffscreenPageLimit(int limit)
PagerAdapter.instantiateItem(ViewGroup container, int position) the position here won't be equal to the ViewPager.getCurrentItem()
If you wan't to get the current position user swiped,use
ViewPager.addOnPageChangeListener(OnPageChangeListener listener)