为了账号安全,请及时绑定邮箱和手机立即绑定

在 onMapReady 回调中上下文为空

在 onMapReady 回调中上下文为空

蝴蝶刀刀 2022-05-12 16:16:32
我正在编写一个 Android 应用程序。在我的应用程序中,我在 MainActivity 中调度了 ACTION_IMAGE_CAPTURE 意图后立即调用了地图片段。地图片段片段是:public class MapFragment extends Fragment implements OnMapReadyCallback {...    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        // Inflate the layout for this fragment        mView = inflater.inflate(R.layout.fragment_map, container, false);        return mView;    }    @Override    public void onViewCreated(View view, Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        mMapView = mView.findViewById(R.id.map);        if (mMapView != null) {            mMapView.onCreate(null);            mMapView.onResume();            mMapView.getMapAsync(this);        }    }...    @Override    public void onMapReady(GoogleMap googleMap) {        MapsInitializer.initialize(getActivity());        mMap = googleMap;        mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);    }如果我不分派 ACTION_IMAGE_CAPTURE 意图,则片段按计划工作,但是,在分派意图时, MapsInitializer.initialize(getActivity()) 中的上下文为空我认为我需要更好地同步 ACTION_IMAGE_CAPTURE 意图完成和 onMapReady 方法,但不确定如何。任何帮助将不胜感激。谢谢,
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

改成这样,


        @Override

        public void onViewCreated(View view, Bundle savedInstanceState) {

            super.onViewCreated(view, savedInstanceState);

            mMapView = mView.findViewById(R.id.map);

           //initialize before calling map onCreate

            MapsInitializer.initialize(getActivity());

            if (mMapView != null) {

                //instead of passing null its a good practice to use savedInstanceState

                mMapView.onCreate(savedInstanceState);

                mMapView.onResume();

                mMapView.getMapAsync(this);

            }

        }


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信