在我的应用程序中,我以编程方式使用google map,但是当我调用getMap()时,它返回null。
即使我尝试了onActivityCreated(),但它仍返回null。
有人请帮助我..
这是我的代码,
public void callMap() {
try {
int status = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(mActivity);
if (status == ConnectionResult.SUCCESS) {
Log.d("sreedhu", "Google Play Service Available");
gmo = (new GoogleMapOptions()).zoomControlsEnabled(true)
.rotateGesturesEnabled(true);
mapFragment = SupportMapFragment.newInstance(gmo);
map=mapFragment.getMap();
manager=getFragmentManager();
FragmentTransaction fragmentTransaction = manager
.beginTransaction();
fragmentTransaction.add(R.id.mapFragmentHole, mapFragment);
fragmentTransaction.commit();
manager.executePendingTransactions();
mapFragment=getMap();
} else if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
ErrorDialogFragment.newInstance(status).show(
getFragmentManager(), "errorDialog");
} else {
Toast.makeText(mActivity, "Google Map v2 not available",
Toast.LENGTH_LONG).show();
mActivity.popFragments();
}
} catch (Exception e) {
Log.d("sreedhu", "play" + e.toString());
}
}
最佳答案
executePendingTransactions似乎不符合您的预期。
通过代码创建MapFragment时,直到调用它的onCreateView之前,您都无法从中获取GoogleMap。
您需要在onStart或onResume中调用map=mapFragment.getMap();
及其后的所有代码。