我有一个FragmentActivity,我想在其中使用一个地图片段。我有一个问题,让支持片段管理器访问它。

 if (googleMap == null) {
            googleMap = ((SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map1)).getMap();

            // check if map is created successfully or not
            if (googleMap == null) {
                Toast.makeText(getApplicationContext(),
                        "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                        .show();
            }
        }

            // create marker
            MarkerOptions marker = new MarkerOptions().position(
                    new LatLng(latitude, longitude)).title("Hello Maps ");

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(latitude, longitude)).zoom(15).build();

            googleMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));

            // adding marker
            googleMap.addMarker(marker);

当前回答

试试这个:

private SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity().getSupportFragmentManager());

其他回答

你可以简单地访问

Context mContext;

public View onCreateView(LayoutInflater inflater,
                             @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

mContext = getActivity();

}

然后使用

FragmentManager fm = ((FragmentActivity) mContext)
                        .getSupportFragmentManager();

下面的代码为我完成了这个任务

 SupportMapFragment mapFragment = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map));
    mapFragment.getMapAsync(this);

如果您在活动中使用片段管理器

getSupportFragmentManager()

supportFragmentManager

如果你在片段中使用片段管理器

childFragmentManager

你可以使用getActivity().getSupportFragmentManager()任何时候你想要得到supportfragmentmanager。

层级是Activity ->片段。fragment不能直接调用getSupportFragmentManger,但是Activity可以。因此,您可以使用getActivity来调用片段所在的当前活动并获得getSupportFragmentManager()

试试这个:

private SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity().getSupportFragmentManager());