无法从活动调用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(); 

我该如何解决这个问题?

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

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

将类扩展到AppCompatActivity而不是Activity

从父母获得当前活动,然后使用此代码

 getActivity().getSupportFragmentManager() 

import

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

简单地使用FragmentManager fm = getActivity()。getSupportFragmentManager();

请记住在MainLayout中使用Casting或getActivity()来访问片段膨胀时。

 getCurrentActivity().getFragmentManager() 

如果你写了一个在片段(活动)的上下文中不存在的代码,假设一个适配器,那么你可以将适配器中的上下文转换为ActivityFragment,如:

FragmentActivity activity = (FragmentActivity) mContext; FragmentManager manager = activity.getSupportFragmentManager();

我用FragmentActivity TabAdapter = new TabPagerAdapter(((FragmentActivity)getActivity())。getSupportFragmentManager());