Impossible d’appeler getSupportFragmentManager () à partir de l’activité

J’ai une activité qui a un fragment.

XML:

 

Et je veux appeler une méthode de ResultFragment à partir d’une méthode de l’activité, mais getSupportFragmentManager “n’existe pas”:

 FragmentManager fragMan = getSupportFragmentManager(); 

Comment puis-je résoudre ça?

Votre activité n’étend pas FragmentActivity à partir de la bibliothèque de support, la méthode n’est donc pas présente dans la superclasse

Si vous ciblez api 11 ou supérieur, vous pouvez utiliser Activity.getFragmentManager à la place.

étendre la classe à AppCompatActivity au lieu de l’activité

obtenir l’activité actuelle du parent, puis en utilisant ce code

 getActivity().getSupportFragmentManager() 

importer

 import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; 

Simplement utiliser

  FragmentManager fm = getActivity().getSupportFragmentManager(); 

Rappelez-vous toujours lors de l’access au fragmenting dans MainLayout, utilisez Casting ou getActivity() .

étendre la créativité au lieu de l’activité

Cela a fonctionné pour moi. Exécution de l’API Android 19 et supérieure.

 FragmentManager fragMan = getFragmentManager(); 
 getCurrentActivity().getFragmentManager() 

Si vous écrivez un code qui n’existe pas dans le contexte du fragment (activité), supposez un adaptateur, vous pouvez convertir votre contexte dans l’adaptateur en ActivityFragment comme suit:

FragmentActivity activity = (FragmentActivity) mContext; FragmentManager manager = activity.getSupportFragmentManager();

J’ai utilisé FragmentActivity TabAdapter = new TabPagerAdapter (((FragmentActivity) getActivity ()). getSupportFragmentManager ());