I need my fragments to always call a certain function when they are the active fragment, so I put it in onResume(), but it isn't being called.
Fragment A
@Override
public  void onResume(){
    super.onResume();
    Log.d("clear state", " "+clear);
    if(clear == true)
    {
        restart();
        clear = false;
        calculate();
    }
}
I use a FragmentPagerAdapter with a ViewPager to switch fragments
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;
So how would I make the fragments call their onResume()?
I had the same problem while ago.
Create a new interface and implement it by both of your Fragments:
public interface OnPageSelectedListener {
    void onPageSelected();
}
In parent activity implement android.support.v4.view.ViewPager.OnPageChangeListener and call Fragment method like this:
@Override
public void onPageSelected(int i) {
    OnPageSelectedListener fragment = (OnPageSelectedListener ((PlaceListPagerAdapter)pager.getAdapter()).getFragment(i);
    fragment.onPageSelected();
}
PS: Name of the new interface and its method is a bit confusing, so be careful or change it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With