如何访问getSupportFragmentManager()的片段? [英] How can I access getSupportFragmentManager() in a fragment?

本文介绍了如何访问getSupportFragmentManager()的片段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个FragmentActivity,我想在它使用的地图片段。我有得到支持片段管理器来访问它的一个问题。

 如果(GoogleMap的== NULL){
            GoogleMap的=((SupportMapFragment)getSupportFragmentManager()
                    .findFragmentById(R.id.map1))的GetMap()。            //检查是否映射成功与否创建
            如果(GoogleMap的== NULL){
                Toast.makeText(getApplicationContext(),
                        对不起!无法创建地图,Toast.LENGTH_SHORT)
                        。显示();
            }
        }            //创建标记
            的MarkerOptions标记=新的MarkerOptions()位置(
                    新的经纬度(纬度,经度))标题(你好图)。            CameraPosition cameraPosition =新CameraPosition.Builder()
                    。.TARGET(新经纬度(纬度,经度))变焦(15).build();            googleMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));            //添加标记
            googleMap.addMarker(标记);


解决方案

您可以直接拨打

  getFragmentManager()

获得片段经理。

在您的片段,

创建域:

 私人FragmentActivity myContext;

您片段覆盖onAttach方法:

  @覆盖
公共无效onAttach(活动活动){
    myContext =(FragmentActivity)活性;
    super.onAttach(活动);
}

当你需要获得支持片段经理电话:

  FragmentManager fragManager = myContext.getSupportFragmentManager(); //如果使用从支持V4片段

  FragmentManager fragManager = myContext.getFragmentManager();

您完成了。

I have a FragmentActivity and I want to use a map fragment within it. I'm having a problem getting the support fragment manager to access it.

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

解决方案

You can directly call

getFragmentManager() 

to get the fragment manager.

or

In your fragment,

Create field :

private FragmentActivity myContext;

override onAttach method of your fragment :

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

When you need to get Support fragment manager call :

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

or

FragmentManager fragManager = myContext.getFragmentManager();

You are done.

这篇关于如何访问getSupportFragmentManager()的片段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆