Reputation: 3226
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
}
}
}
Upvotes: 1
Views: 66
Reputation: 5636
Setting same OnPageChangeListener
for multiple ViewPager
will not work. You need to create a class which implements OnPageChangeListener
. In this class add a constructor which takes ViewPager
as an input parameter and hold the value in a data member. Finally, use this class for adding OnPageChangeListener
Upvotes: 2
Reputation: 3285
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) {
}
});
Upvotes: 3