Cannot call getSupportFragmentManager() from activity

AndroidAndroid ActivityAndroid Fragments

Android Problem Overview


I have an activity which has a 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" />

And I want to call a method from ResultFragment from a method in the Activity, but getSupportFragmentManager "doesn't exist":

FragmentManager fragMan = getSupportFragmentManager();

How can I resolve this?

Android Solutions


Solution 1 - Android

Your activity doesn't extend FragmentActivity from the support library, therefore the method is not present in the superclass

If you are targeting api 11 or above, you could use Activity.getFragmentManager instead.

Solution 2 - Android

extend class to AppCompatActivity instead of Activity

Solution 3 - Android

get current activity from parent, then using this code

getActivity().getSupportFragmentManager()

Solution 4 - Android

Simply Use

 FragmentManager fm = getActivity().getSupportFragmentManager();

Remember always when accessing fragment inflating in MainLayout use Casting or getActivity().

Solution 5 - Android

You need to extend FragmentActivity instead of Activity

Solution 6 - Android

import

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

Solution 7 - Android

This worked for me. Running android API 19 and above.

FragmentManager fragMan = getFragmentManager();

Solution 8 - Android

getCurrentActivity().getFragmentManager()

Solution 9 - Android

Instead of

extends Fragment

use

extends android.support.v4.app.Fragment 

This works for me. for *API14 and above

Solution 10 - Android

I used FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTaruView Question on Stackoverflow
Solution 1 - AndroidRobert EstivillView Answer on Stackoverflow
Solution 2 - AndroidSamadView Answer on Stackoverflow
Solution 3 - Androiduser4790312View Answer on Stackoverflow
Solution 4 - AndroidNitesh RathodView Answer on Stackoverflow
Solution 5 - Androiddileep krishnanView Answer on Stackoverflow
Solution 6 - AndroidsansalkView Answer on Stackoverflow
Solution 7 - AndroidNic ParmeeView Answer on Stackoverflow
Solution 8 - AndroidCesar AlonsoView Answer on Stackoverflow
Solution 9 - AndroidBeertoasterView Answer on Stackoverflow
Solution 10 - AndroidpituView Answer on Stackoverflow