2013-03-17 27 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

相关问题