无法从活动中调用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" />

而且我想从Activity中的方法中调用ResultFragment中的方法,但是getSupportFragmentManager“不存在”:

FragmentManager fragMan = getSupportFragmentManager();

我该如何解决?

Answers:


189

您的活动不会从支持库扩展FragmentActivity,因此该方法在超类中不存在

如果您的目标是api 11或更高版本,则可以改用Activity.getFragmentManager


11
FragmentManager现在已弃用。
CoolMind

并非完全正确,您应该使用AndroidX FragmentManager。
ueen

1
我在这里使用ComponentActivity而不是AppcompactActivity,并且在componentActivity中,getsupportManger()给错误anyiIdea
Sunil Chaudhary


18

从父级获取当前活动,然后使用此代码

getActivity().getSupportFragmentManager()

也可以尝试FragmentManager fragMan = getFragmentManager();
MrPickles7

4

进口

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

20
这里导入还不够-您也必须继承FragmentActivity
亚历山大·法伯





0

代替

extends Fragment

采用

extends android.support.v4.app.Fragment 

这对我有用。* API14及以上


-1

我用了 FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.