我正在编写一个 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);
}
}
添加回答
举报
0/150
提交
取消