Cannot call getSupportFragmentManager() from activity
AndroidAndroid ActivityAndroid FragmentsAndroid 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());