2013-03-17 58 views
4

當我們的片段是活動片段時,我需要我的片段始終調用某個函數,因此我將它放在onResume()中,但未被調用。使用FragmentPagerAdapter時不會調用片段onResume()

片段A

@Override 
public void onResume(){ 
    super.onResume(); 
    Log.d("clear state", " "+clear); 
    if(clear == true) 
    { 
     restart(); 
     clear = false; 
     calculate(); 
    } 
} 

我使用FragmentPagerAdapter與ViewPager切換片段

public class ScoutingFragSingle extends FragmentPagerAdapter{ 


@Override 
public Fragment getItem(int index) { 
    Bundle data = new Bundle(); 
    switch(index){ 
    case 0: 
     TeamsFragment teamsFragment = new TeamsFragment(); 
     data.putInt("current_page", index+1); 
     teamsFragment.setArguments(data); 
     return teamsFragment; 
    case 1: 

     data.putInt("current_page", index+1); 
     data.putInt("matchId", matchNum); 
     aFragment.setArguments(data); 
     return aFragment; 

那麼我將如何使片段撥打他們的onResume()?

回答

5

我以前遇到同樣的問題。

創建一個新的接口,並通過雙方的Fragment S的實現:

public interface OnPageSelectedListener { 
    void onPageSelected(); 
} 

在父活動實現android.support.v4.view.ViewPager.OnPageChangeListener並調用Fragment方法是這樣的:

@Override 
public void onPageSelected(int i) { 
    OnPageSelectedListener fragment = (OnPageSelectedListener ((PlaceListPagerAdapter)pager.getAdapter()).getFragment(i); 
    fragment.onPageSelected(); 
} 

PS:新的名稱界面和它的方法有點混亂,所以要小心或改變它。

+0

這是正確的 – 2014-10-13 08:29:10

相關問題