Невозможно вызвать getSupportFragmentManager () из активности


79

У меня есть действие, в котором есть фрагмент.

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

И я хочу вызвать метод из ResultFragment из метода в Activity, но getSupportFragmentManager «не существует»:

FragmentManager fragMan = getSupportFragmentManager();

Как я могу это решить?

Ответы:


189

Ваша активность не расширяет FragmentActivity из библиотеки поддержки, поэтому метод отсутствует в суперклассе

Если вы ориентируетесь на api 11 или выше, вы можете вместо этого использовать Activity.getFragmentManager .


11
FragmentManagerустарел.
CoolMind

Не совсем верно, вы должны использовать AndroidX FragmentManager.
ueen

1
Я использую ComponentActivity здесь, а не AppcompactActivity, а в componentActivity getsupportManger () выдает ошибку anyiIdea
Сунил Чаудхари


18

получить текущую активность от родителя, а затем использовать этот код

getActivity().getSupportFragmentManager()

также можно попробовать FragmentManager fragMan = getFragmentManager ();
MrPickles7


4

Просто используйте

 FragmentManager fm = getActivity().getSupportFragmentManager();

Всегда помните, что при доступе к расширению фрагмента в MainLayout используйте Casting или getActivity().





0

Вместо

extends Fragment

использовать

extends android.support.v4.app.Fragment 

У меня это работает. для * API14 и выше


-1

я использовал FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.