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?
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 .
étendre la classe à AppCompatActivity
au lieu de Activity
récupère l'activité actuelle du parent, puis utilise ce code
getActivity().getSupportFragmentManager()
importation
import Android.support.v4.app.FragmentActivity;
import Android.support.v4.app.FragmentManager;
Simplement utiliser
FragmentManager fm = getActivity().getSupportFragmentManager();
Rappelez-vous toujours lorsque vous accédez au gonflement de fragments dans MainLayout, utilisez Casting ou getActivity()
.
étendre FragementAvtivity au lieu de Activity
Cela a fonctionné pour moi. Exécution de Android API 19 et supérieure.
FragmentManager fragMan = getFragmentManager();
getCurrentActivity().getFragmentManager()