2014-02-13 46 views
1

我已經實現了這些代碼行,但它不工作。如何從視圖尋呼機適配器獲取當前可見片段?

pagerAdapter =新AbstractPagerAdapter(getSupportFragmentManager());

mViewPager = (ViewPager)findViewById(R.id.pager); 

    MyFragment frg = (MyFragment)pagerAdapter.getItem(mViewPager.getCurrentItem()); 

public class AbstractPagerAdapter extends FragmentPagerAdapter { 

     public AbstractPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int position) { 

      return AbstractDetailFragment.newInstance(objlist.get(position),position == notePosition ? true : false); 

     } 

     @Override 
     public int getCount() { 
      return objlist.size(); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 

      return objlist.get(position).getTitle(); 
     } 
    } 

回答

1

爲了得到當前可見的片段例如嘗試以下

viewPager.setOnPageChangeListener(this); 

,並在下面的方法

@Override 
public void onPageSelected(int position) { 

    if (position == 0) 
     setFragmentFor(0); 
    if (position == 1) 
     setFragmentFor(1); 
      . 
      . 
      . 
      // Upto how many fragments you've in your ViewPager 
} 

所以在setFragmentFor()方法,你應該寫你自己的邏輯來獲得新的片段實例取決於通過setFragmentFor()傳遞的參數值。

+0

ViewPager#setOnPageChangeListener已棄用。用戶addOnPageChangeListener – wsgeorge

相關問題