无法从活动中调用 getSupportFragmentManager()

我有一个活动,其中有一个片段。

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();

我该怎么办?

191839 次浏览

您的活动没有从支持库扩展 碎片活动,因此该方法不存在于超类中

如果您的目标是 api 11或以上,则可以使用 Activity.getFragmentManager

进口

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

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

getActivity().getSupportFragmentManager()

我用的是 FragmentActivity

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

将类扩展到 AppCompatActivity而不是 Activity

getCurrentActivity().getFragmentManager()

简单使用

 FragmentManager fm = getActivity().getSupportFragmentManager();

在 MainLayout 使用中访问片段膨胀时,请始终记住 铸造或 getActivity()

您需要扩展 FragmentActivity而不是 Activity

这对我很有用,运行 android API 19及以上版本。

FragmentManager fragMan = getFragmentManager();

而不是

extends Fragment

使用

extends android.support.v4.app.Fragment

这对我有用。 适用于 * API14及以上