web-dev-qa-db-fra.com

Impossible d'appeler getSupportFragmentManager () à partir d'une activité

J'ai une activité qui a un fragment.

XML:

 <fragment Android:name="com.example.androidcalculator.ResultFragment"
            Android:id="@+id/result_fragment"
            Android:layout_weight="1"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content" />

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?

79
Taru

Votre activité ne s'étend pas FragmentActivity à partir de la bibliothèque de support. Par conséquent, la méthode n'est pas présente dans la superclasse.

Si vous ciblez l'API 11 ou une version ultérieure, vous pouvez utiliser Activity.getFragmentManager .

186
Robert Estivill

étendre la classe à AppCompatActivity au lieu de Activity

54
El Pr0grammer

récupère l'activité actuelle du parent, puis utilise ce code

getActivity().getSupportFragmentManager()
17
user4790312

importation

import Android.support.v4.app.FragmentActivity;
import Android.support.v4.app.FragmentManager;
5
sansalk

Simplement utiliser

 FragmentManager fm = getActivity().getSupportFragmentManager();

Rappelez-vous toujours lorsque vous accédez au gonflement de fragments dans MainLayout, utilisez Casting ou getActivity().

3
Nitesh Rathod

étendre FragementAvtivity au lieu de Activity

2
dileep krishnan

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

FragmentManager fragMan = getFragmentManager();
2
Nic Parmee
getCurrentActivity().getFragmentManager()
1
Cesar Alonso