2016-06-12 112 views
1

我在所有的互联网搜索,但我没有找到任何关于我的问题的真正的解决方案。获取当前项目ViewPageAdapter Android

我有一个Viewpager类。 (类DescripcionRutinas)

private void setupViewPager(ViewPager viewPager) { 
    adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

    adapter.addNumDias(numDias); 
    adapter.setDias(dias); 
    viewPager.setAdapter(adapter); 
    viewPager.setOffscreenPageLimit(5); 

} 

而且我有一个ViewPagerAdapter

class ViewPagerAdapter extends FragmentPagerAdapter { 

    private int numDias; 
    private int count = 0; 
    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 
    ArrayList<Dia> dias; 

    @Override 
    public Fragment getItem(int position) { 
     OneFragmentSeries fragmento = new OneFragmentSeries(); 

     Dia ex = dias.get(**I NEED CURRENT ITEM HERE**); 
     nomDia = ex.getNombre(); 

     fragmento.setSeries((ArrayList<Serie>)((ArrayList<Dia>)WorkoutYourself.dameWorkoutYourself().dameRutina(nomRutina).getDias()).get(position).getSeries()); 
     return fragmento; 
    } 

我需要这里的当前项目位置。

注意:ViewPagerAdapter是INSIDE DescripcionRutinas。

谢谢你们!

+0

你的意思是你看到viewPager的当前位置? –

+0

是的,即时使用标签,但“位置”不给我当前标签,给我下一个标签,并且,当我到达最终选项卡时,var“位置”只会给我最后一个选项卡。 –

+0

你试过了yourViewPager.get(位置)吗? –

回答

0

尝试使用yourViewPager.getCurrentItem()它应该工作以获得您的可见寻呼机位置。

更新

onPageSelected(int currentPage)应该做的东西

dia.setOnPageChangeListener(new OnPageChangeListener() { 

    public void onPageScrollStateChanged(int arg0) { 
    } 

    public void onPageScrolled(int arg0, float arg1, int arg2) { 
    } 

    public void onPageSelected(int currentPage) { 
     //here you get your current position 
    } 

}); 
+0

问题是,如果getItem在“yourViewPager”中,如何在“getItem”方法内使用此命令? –

+0

看到我的更新@RobertoR –

+0

我的荣幸...快乐编码:) –

0

阅读本documentation

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

     } 

     @Override 
     public void onPageSelected(int positionCurrentPage) { 
      if(positionCurrentPage == 1){ // if you want the second page, for example 
       //Your code here 
      } 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 
+0

完美,谢谢! –