2016-06-12 60 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

完美,謝謝! –