Google Play Service - SupportMapFragment.getMap() always returning null
15,527
As CommonsWare stated in the linked question, the problem only occures when creating the SupportMapFragment
programmatically and not a <fragment>
XML tag.
If created programmatically, the map will be available in the onActivityCreated()
call. So my workaround is the following:
mMapFragment = new SupportMapFragment() {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
GoogleMap map = mMapFragment.getMap();
if (map != null) {
//Your initialization code goes here
}
}
};
Related videos on Youtube
Author by
Goddchen
Updated on June 04, 2022Comments
-
Goddchen almost 2 years
Possible Duplicate:
How do I know the map is ready to get used when using the SupportMapFragment?I am currently testing the new Maps API V2 but I'm really having trouble getting it to work correclty.
My problem is that getMap() always returns null.
I have tested the call in 3 different points:
- onCreate()
- onResume()
- in a Handler that is called some seconds after the map is already visible on the screen
Here is the code:
public class MapActivity extends FragmentActivity { private SupportMapFragment mMapFragment; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); setupMap(); } @Override protected void onResume() { super.onResume(); setupMap(); new Handler().postDelayed(new Runnable() { @Override public void run() { setupMap(); } }, 5000); } private void setupMap() { if (getSupportFragmentManager().findFragmentById(R.id.fragment) == null) { mMapFragment = CustomMapFragment.newInstance(); getSupportFragmentManager().beginTransaction() .add(R.id.map_wrapper, mMapFragment).commit(); } GoogleMap map = mMapFragment.getMap(); if (map != null) { mMapFragment.getMap().getUiSettings().setZoomControlsEnabled(true); mMapFragment.getMap().getUiSettings().setZoomGesturesEnabled(true); mMapFragment.getMap().setMyLocationEnabled(true); } }
Anything that I'm doing wrong?