Amay Diam
Amay Diam

Reputation: 2591

onPageSelected ViewPager not Called after ViewPager.setCurrentItem

I have problem with my ViewPager. Method onPageSelected ViewPager not called after i set ViewPager.setCurrentItem . This my Code:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
    ...

    mMyFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
            mViewPager.setAdapter(mMyFragmentPagerAdapter);
            mViewPager.setCurrentItem(999);

            mViewPager.addOnPageChangeListener(new OnPageChangeListener() {

                public void onPageSelected(int currentIndex) {
                    current_posisition_page = currentIndex;
                    PageFragment page = ((MyFragmentPagerAdapter) mViewPager.getAdapter()).getFragment(current_posisition_page);
                    page.checkSetContentData();
                }

                public void onPageScrolled(int arg0, float arg1, int arg2) { /* Nothing to do here */ }

                public void onPageScrollStateChanged(int arg0) { /* Nothing to do here */ }
            });


    ....

    }

above code, when activity created, viewpager jump to index 999 page. But the code inner onPageSelected not automatically called. it's just work when I swipe to index 988 page, and back again to index 999 page. so how to solve it ? thanks sorry for my Englsih.

Upvotes: 0

Views: 1387

Answers (2)

Steve Luck
Steve Luck

Reputation: 173

You should do:

mViewPager.addOnPageChangeListener(this);
onPageChanged(999);
mViewPager.setCurrentItem(999);
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
    // your code
}

@Override
public void onPageScrollStateChanged(int state) {

}

Upvotes: 0

Benjamin Scharbau
Benjamin Scharbau

Reputation: 2089

Try adding the listener before calling setCurrentItem().

Upvotes: 1

Related Questions