81

我有一个包含片段的活动。

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

我该如何解决这个问题?

4

10 回答 10

192

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

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

于 2012-11-18T19:40:44.620 回答
61

将类扩展到AppCompatActivity而不是Activity

于 2015-09-28T18:03:07.797 回答
20

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

getActivity().getSupportFragmentManager()
于 2015-08-04T20:17:40.293 回答
4

只需使用

 FragmentManager fm = getActivity().getSupportFragmentManager();

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

于 2016-11-12T07:13:45.270 回答
4

您需要扩展FragmentActivity而不是Activity

于 2018-02-07T07:03:59.167 回答
3

进口

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
于 2014-10-02T13:46:48.260 回答
2

这对我有用。运行 android API 19 及更高版本。

FragmentManager fragMan = getFragmentManager();
于 2018-04-10T07:51:40.443 回答
1
getCurrentActivity().getFragmentManager()
于 2016-11-12T01:11:45.383 回答
0

代替

extends Fragment

利用

extends android.support.v4.app.Fragment 

这对我有用。*API14 及以上

于 2019-09-15T04:58:24.003 回答
-1

我用了FragmentActivity

TabAdapter = new TabPagerAdapter(((FragmentActivity) getActivity()).getSupportFragmentManager());
于 2015-08-30T11:11:33.877 回答