我的问题很简单,但我不知道如何解决……我没有找到任何对这个问题的回应。
我有2个viewPager
,当选择一个页面时,我想知道它来自onPageSelected()
中的哪个viewPager
。
这是我的代码:
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
}
}
}
您可以为每个ViewPager
设置不同的侦听器,而不是在Activity类上实现。像这个
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) {
}
});
和
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) {
}
});
为多个ViewPager
设置相同的OnPageChangeListener
将不起作用。您需要创建一个实现OnPageChangeListener
的类。在这个类中添加一个构造函数,该构造函数将ViewPager
作为输入参数,并将值保存在数据成员中。最后,使用此类添加OnPageChangeListener