2013-09-26 4 views
0

J'ai déjà lu beaucoup de sujets sur ce problème, mais rien n'a aidé. Je souhaite donc utiliser un GoogleMap dans un SupportMapFragment. Dans le FragmentActivity j'initialisés la carte dans la méthode onCreateandroid (Support) MapFragment getMap() Retour null

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_frame); 

    // Initialize Google Maps Android API 
    try { 
     MapsInitializer.initialize(this); 
    } catch (GooglePlayServicesNotAvailableException e) { 
     e.printStackTrace(); 
    } 
... 

le code de ma MapFragment ressemble exactement à ce

public class MapFragment extends SupportMapFragment { 

private final String TAG = getClass().getSimpleName(); 


public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.map, null); 
} 

public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
} 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    GoogleMap gMap = this.getMap(); 

    Log.d(TAG, 
      "getMap() " + ((gMap == null) ? "null" : gMap.toString())); 

    // Setting Location and Zoom 
    gMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(
      40.76793169992044f, -73.98180484771729f), 14.0f)); 
} 

} 

Chaque fois que je reçois nulle avec la méthode getMap ... des idées?

€ dit:

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:map="http://schemas.android.com/apk/res-auto" 
android:id="@+id/map" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
class="com.google.android.gms.maps.SupportMapFragment" 
map:cameraBearing="112.5" 
map:cameraTargetLat="-33.796923" 
map:cameraTargetLng="150.922433" 
map:cameraTilt="30" 
map:cameraZoom="50" 
map:mapType="normal" 
map:uiCompass="false" 
map:uiRotateGestures="true" 
map:uiScrollGestures="false" 
map:uiTiltGestures="true" 
map:uiZoomControls="false" 
map:uiZoomGestures="true" /> 
+1

est-il une carte dans votre mise en page? – njzk2

+0

Pas directement. J'ai un fichier de configuration de fragment. Voir dans le post édité. – Forke

+1

Avez-vous essayé de déplacer votre code getMap() vers onStart ou onResume? Voir ma réponse http://stackoverflow.com/a/20747717/2364687, bien que cela puisse ne pas s'appliquer dans votre cas. En outre, vous avez certainement installé les services Google Play (vous ne saisissez pas et ignorez l'exception dans onCreate)? – GLee

Répondre