Dans l' onCreate
méthode, j'ai fait l'utilisation de l' SupportMapFragment
de montrer une carte.
SupportMapFragment fragment = new SupportMapFragment();
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, fragment).commit();
En parallèle à cela, je voudrais ajouter un marqueur. Le problème est lors de l'appel à getMap
est nulle, quand puis-je essayer de nouveau? Il y a un événement que je peux vous inscrire, ou est mon approche en elle-même mal?
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null)
//what do I do here?
La carte est en fait un affichage sur le téléphone, mais je semble avoir aucune chance dans l'obtention de la référence à ajouter des marqueurs.
Mise à JOUR:
La raison que j'ai de la création de l' SupportMapFragment
par le constructeur est parce que les typiques setContentView
a été s'écraser et ne fonctionne pas. Cela m'a mis dans la situation où je ne pouvais pas obtenir ma référence en onCreate
méthode depuis que je suis en fait la création de l' SupportMapFragment
à l'époque. Dans la poursuite de l'enquête, il s'avère que mes setContentView
question était un sous-produit de ne pas avoir à la fois la Google-play-services bocal ET le module/src partie de l'ensemble du projet. Sur faire les DEUX, setContentView
fonctionne maintenant et je peux obtenir la référence par l'intermédiaire d' getMap()
que je m'attends.
lots.xml...
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
LotsActivity.java...
public class LotsActivity extends FragmentActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lots);
GoogleMap mMap;
mMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();
if(mMap == null)
//this should not occur now
}