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

我该如何解决这个问题?

  • 在Activity被杀死并重新创建后,片段仍然存在
  • 在DialogFragment上commitAllowingStateLoss
  • Android ViewPager和TabLayout无法快速运行
  • 使用Android中的工具栏实现正确的后退导航和主页按钮处理
  • Android 1.6&Fragment&Tabhost
  • 如何在EditText和Soft Keyboard之间添加边距?
  • 片段不会从内存中释放
  • Android片段上的“内容视图尚未创建”
  • 您的活动不会从支持库中扩展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());