Próbuję uzyskać mapę z obiektu SupportMapFragment, ale zwraca wartość null. Z tego co przeczytałem może wynikać, że fragment nie jest jeszcze w pełni wyświetlony i dlatego nie istnieje żadna mapa ?! Próbowałem naprawić go przy użyciu executePendingTransactions(), ale bez powodzenia do tej pory.mapFragment.getMap() zwraca wartość null
Wszelkie pomysły, jak to naprawić?
Oto kod
private GoogleMap map;
private SupportMapFragment mapFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
//...
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_mission2);
GoogleMapOptions mapOptions = new GoogleMapOptions();
mapOptions.mapType(GoogleMap.MAP_TYPE_NORMAL)
.compassEnabled(true)
.rotateGesturesEnabled(false)
.tiltGesturesEnabled(false);
android.support.v4.app.FragmentManager myFragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentManager.enableDebugLogging(true);
mapFragment = SupportMapFragment.newInstance(mapOptions);
FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction();
fragmentTransaction.add(R.id.mapFragment, mapFragment);
fragmentTransaction.commit();
myFragmentManager.executePendingTransactions();
if(mapFragment == null) Base.log("mapFragment==null");
if(map==null){
map = mapFragment.getMap();
Base.log("map should have been initialized");
if(map==null) Base.log("map still null");
}
}
a plik układ:
<fragment
android:id="@+id/mapFragment"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Zwraca następujące dziennik
V/FragmentManager(24224): add: SupportMapFragment{4078c4b8 id=0x7f06003d}
V/FragmentManager(24224): Allocated fragment index SupportMapFragment{4078c4b8 #1 id=0x7f06003d}
V/FragmentManager(24224): moveto CREATED: SupportMapFragment{4078c4b8 #1 id=0x7f06003d}
D/EMR (24224): map should have been initialized
D/EMR (24224): map still null
Tu pan ogłosił 'zmienną mapFragment'? – yugidroid
Tak, ja to zadeklarowałem (edytowałem część kodu, patrz wyżej) – cos4
Czy jest zainicjowana? W przeciwnym razie będzie to to samo, co nic, tzn. "Null". – yugidroid