如何在viewpager中获取当前项目no。
@Override
public Object instantiateItem(ViewGroup paramView, int paramInt) {
int itemno1= getItem(pager.getCurrentItem());
int itemno2= getItem(paramInt);
Toast.makeText(context, "postition"+itemno1, Toast.LENGTH_SHORT).show();
//Toast.makeText(context, "postition"+itemno2, Toast.LENGTH_SHORT).show();
}
但是这种方法工作不正常。当我向前和向后滑动时,它会给出错误的项目。
答案 0 :(得分:2)
在您的viewpager上设置ViewPager.setOnPageChangeListener
。
有点像这样 -
myViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
// here you will get the position of selected page
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
答案 1 :(得分:1)
试试这个
ViewPager.getCurrentItem();
或
pageListener = new PageListener();
ViewPager.setOnPageChangeListener(pageListener);
您必须为viewPager添加页面更改侦听器。 viewPager上没有方法来获取当前页面。
private int currentPage;
private static class PageListener extends SimpleOnPageChangeListener{
public void onPageSelected(int position) {
Log.i(TAG, "page selected " + position);
currentPage = position;
}
}