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