无法从activity调用getSupportFragmentManager()

时间:2012-11-18 19:37:39

标签: android android-activity android-fragments

我有一个有片段的活动。

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

我该如何解决这个问题?

10 个答案:

答案 0 :(得分:181)

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

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

答案 1 :(得分:50)

将课程扩展为AppCompatActivity而不是Activity

答案 2 :(得分:17)

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

2

答案 3 :(得分:5)

导入

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

答案 4 :(得分:3)

简单使用

 FragmentManager fm = getActivity().getSupportFragmentManager();

在MainLayout使用中访问片段膨胀时请记住 施放或getActivity()

答案 5 :(得分:2)

扩展FragementAvtivity而不是Activity

答案 6 :(得分:2)

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

FragmentManager fragMan = getFragmentManager();

答案 7 :(得分:1)

getCurrentActivity().getFragmentManager()

答案 8 :(得分:0)

代替

extends Fragment

使用

extends android.support.v4.app.Fragment 

这对我有用。 * API14及以上版本

答案 9 :(得分:-1)

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