Android PagerAdapter, get current position
I had this problem and could not get the getCurrentItem()
methode.
I ended up getting the position from the ViewPager
and not from the PageAdapter
. The onPageSelected(int currentPage)
methode is getting the currently displayed page.
//custom PageAdapter implementationmAdapter = new AwesomePagerAdapter();//Our custom view pager that extends from ViewPagermPager = (CustomViewPager) findViewById(R.id.preview_gallery);mPager.setAdapter(mAdapter);// get the item that we should be showing from the intentmCurrentPage = extra.getInt("currentIndex");// show the item the user pickedmPager.setCurrentItem(mCurrentPage);// listen for page changes so we can track the current indexmPager.setOnPageChangeListener(new OnPageChangeListener() { public void onPageScrollStateChanged(int arg0) { } public void onPageScrolled(int arg0, float arg1, int arg2) { } public void onPageSelected(int currentPage) { //currentPage is the position that is currently displayed. }});
Doing it in the PageAdaper
didn't work for me as I want to preload images that are not visible. The position that is passed instantiateItem(View collection, int position)
of the PageAdapter` is the position of the next item initialized. This has nothing to do with the item that is displayed.
if i write after that line
Log.i("pager",myPager.getCurrentItem()+"");
it will show in the logcat the current item page while the oncreate is being run which is always 0
noteice i have used the object for the viewpager it self not the adapter.