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 Fragment
s:
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