如何在片段中访问getSupportFragmentManager()?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (60)

我有一个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);
提问于
用户回答回答于

你可以直接调用

getFragmentManager() 

得到片段管理器。

或者

在你的片段中,

创建字段:

private FragmentActivity myContext;

覆盖片段的onAttach方法:

@Override
public void onAttach(Activity activity) {
    myContext=(FragmentActivity) activity;
    super.onAttach(activity);
}

当你需要获得支持片段管理器调用时:

FragmentManager fragManager = myContext.getSupportFragmentManager(); //If using fragments from support v4

或者

FragmentManager fragManager = myContext.getFragmentManager();

你完成了。

用户回答回答于

扫码关注云+社区