使用FragmentPagerAdapter時,難免要在MainActivity 和 當前顯示的Fragment間傳遞數據。但是FragmentPagerAdapter並沒有給我們提供類似getCurrentFragment一類的API。
通過FragmentPagerAdapter源碼,發現每次Fragment切換都會調用到FragmentPagerAdapter.setPrimaryItem 方法。這個方法里把一個Fragment設置為mCurrentPrimaryItem。 很明顯,mCurrentPrimaryItem就是我們想得到的當前Fragment.那么我們只需要重載這個方法,把傳入的Fragment記錄下來即可。
XX
我們可以在Adapter里定義一個currentFragment成員
public class XXPagerAdapter extends FragmentPagerAdapter{ Fragment currentFragment; @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { currentFragment = (QipanFragment) object; super.setPrimaryItem(container, position, object); } }
在外層Activity中,
getFragmentPageAdapter().currentFragment