No se puede llamar a getSupportFragmentManager () desde la actividad


79

Tengo una actividad que tiene un fragmento.

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" />

Y quiero llamar a un método de ResultFragment desde un método en la Actividad, pero getSupportFragmentManager "no existe":

FragmentManager fragMan = getSupportFragmentManager();

¿Cómo puedo resolver esto?

Respuestas:


189

Su actividad no extiende FragmentActivity de la biblioteca de soporte, por lo tanto, el método no está presente en la superclase

Si tiene como objetivo la api 11 o superior, puede usar Activity.getFragmentManager en su lugar.


11
FragmentManagerahora está en desuso.
CoolMind

No es del todo cierto, se supone que debes usar AndroidX FragmentManager.
ueen

1
Estoy usando ComponentActivity aquí, no AppcompactActivity y en componentActivity getsupportManger () está dando el error anyiIdea
Sunil Chaudhary

56

extender la clase a en AppCompatActivitylugar deActivity


18

obtener la actividad actual de los padres, luego usar este código

getActivity().getSupportFragmentManager()

también puede probar FragmentManager fragMan = getFragmentManager ();
MrPickles7

4

importar

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

20
Importar no es suficiente aquí, también debe heredar FragmentActivity.
Alexander Farber

4

Simplemente use

 FragmentManager fm = getActivity().getSupportFragmentManager();

Recuerde siempre al acceder al inflado de fragmentos en MainLayout use Casting o getActivity().



2

Esto funcionó para mí. Ejecutando la API de Android 19 y superior.

FragmentManager fragMan = getFragmentManager();


0

En vez de

extends Fragment

utilizar

extends android.support.v4.app.Fragment 

Esto funciona para mi. para * API14 y superior


-1

solía FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.