Search code examples
androidandroid-viewpager

How to differentiate 2 viewPager in onPageSelected


my problem is pretty simple but I don't see how to solve it... I didn't find any response to this problem.

I have 2 viewPager and when a page is selected I want to know which viewPager it comes from in onPageSelected().

There is my code :

public class MainActivity {

    private ViewPager mCardsPager;
    private ViewPager mIpsPager;
    private MyCreditCardsPagerAdapter mCardsAdapter;
    private MyInstantPaiementPagerAdapter mIpsAdapter;
    private List<PayMethod> mCards;
    private List<PayMethod> mIps;

    //fill Pager/Adapter/List

    @Override
    public void onPageSelected(int position) {
        if () {//If the page comes from mCardsPager
            //do Something with mCards
        } else { //else the page comes from mIpsPager
            //do Something with mIps
        }
    }

}

Solution

  • You can set different listeners for each ViewPager rather than implement on Activity class. Like this

    mCardsPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int i, float v, int i1) {
    
                }
    
                @Override
                public void onPageSelected(int i) {
    
                }
    
                @Override
                public void onPageScrollStateChanged(int i) {
    
                }
            });
    

    AND

    mIpsPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                    @Override
                    public void onPageScrolled(int i, float v, int i1) {
    
                    }
    
                    @Override
                    public void onPageSelected(int i) {
    
                    }
    
                    @Override
                    public void onPageScrollStateChanged(int i) {
    
                    }
                });