Bertoncelj1
Bertoncelj1

Reputation: 436

How to set OnPageChangeListener for Multiple ViewPagers

I am using this for loop to define my ViewPagers:

LinearLayout llMain;
PagerAdapter[] pAdapter = new PagerAdapter[20];
ViewPager[] pager = new ViewPager[20];   

for(int i=0;i<20;i++){
    pAdapter[i] = new AwesomePagerAdapter();
    pager[i] = new ViewPager(this);
    pager[i].setAdapter(pAdapter[i]);
    IfinAwesomePager[i].setOnPageChangeListener(new OnPageChangeListener() {
        @Override
        public void onPageScrollStateChanged(int arg0) {}
        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {}

        @Override
        public void onPageSelected(int arg0) {
            //which one of my ViewPagers has been changed here?
        }
    });
    llMain.addView(pager[i]);
}

How do I know which one of my ViewPagers was changed in OnPageChangeListener() ?

Thanks!

Upvotes: 0

Views: 857

Answers (1)

CommonsWare
CommonsWare

Reputation: 1006614

I am using this for loop to define my ViewPagers

That is an unusual pattern.

How do I know which one of my ViewPagers was changed in OnPageChangeListener() ?

Create a class that implements OnPageChangeListener. Have that class take the ViewPager in the constructor and hold onto that value in a data member. Use that class instead of your current anonymous inner class for attaching a listener to the pager.

Upvotes: 4

Related Questions