Android Google Maps v2: sur cliquez auditeur ne répond pas
Je suis en train de mettre un repère lorsque l'utilisateur clique sur la carte. Je suis à l'aide d'un SupportMapFragment
à l'intérieur d'un ActionBarActivity
. Mais la carte ne répond pas, en outre, un map.setMapType()
opération ne fonctionne pas.
Voici mon code:
private GoogleMap map;
private Marker marker;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ActionBarActivity activity = (ActionBarActivity) getActivity();
activity.getSupportActionBar().setTitle(R.string.select_location);
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.map, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Log.d("Map","On view created");
map = getMap();
map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
Log.d("Map","Map clicked");
marker.remove();
drawMarker(point);
}
});
...
Location location = locationManager.getLastKnownLocation(provider);
if(location!=null){
//PLACE THE INITIAL MARKER
drawMarker(new LatLng(location.getLatitude(),location.getLongitude()));
}
}
Logcat est de montrer la "vue créée" le message et la carte montre l'emplacement actuel avec un marqueur, de sorte que la dernière partie du code est en cours d'exécution. Mais le onMapClickListener
est surdéfinie ou quelque chose parce que ça ne fonctionne pas, et la carte n'est pas un satellite.
Quelqu'un peut-il m'aider?
OriginalL'auteur Jon Zangitu | 2013-09-05
Vous devez vous connecter pour publier un commentaire.
Si vous avez étendu SupportMapFragment vous pouvez simplement faire ceci:
Noter que getMap() est appelée dans
onActivityCreated
etinflater.inflate(R.layout.map, container, false)
n'est pas nécessaire si vous n'avez pas utiliser une mise en page personnalisée.Vous n'avez même pas besoin d'un map.xml mise en page!
Étendre
SupportMapFragment
mais vous êtes gonflant un autreMapView
(pas celle liée àSupportMapFragment
par défaut), c'est pourquoi vous ne pouvez pas voir les changements dans votre carte. Parce que vous étiez en agissant sur la valeur par défautView
obtenu à partir degetMap()
mais que vous affichez une autre. Voir la docs sur getMap():J'espère que ça aide 😉
Ez horregatik! À mon avis, vous ne devriez pas prolonger SupportMapFragment dans ce cas, mais juste Fragment (à partir de la bibliothèque de prise en charge). Voir ce lien: stackoverflow.com/questions/13804511/...
Une autre possibilité est d'ajouter la SupportMapFragment à un FragmentActivity juste en prenant de l'espace pour la carte. F.-je. à l'aide d'un FrameLayout du conteneur dans votre FragmentActivity mise en page: developer.android.com/training/basics/fragments/...
OriginalL'auteur josuadas
Bien vous placez l'écouteur de votre carte, mais vous avez besoin de faire un écouteur pour vos marqueurs.
ou pour la InfoWindows sur le dessus de l'marqueurs:
Aussi, votre initialitizing de la carte faisant afficher satellite est presque correct:
le modifier:
OriginalL'auteur bofredo
Au lieu de faire la carte = getMap(), quelques lignes plus tard, j'ai eu ce code:
Donc, je viens de mettre le code au-dessus de cette ligne et c'est fait.
OriginalL'auteur Jon Zangitu
Au lieu de faire la carte = getMap (), vous pouvez l'essayer.
OriginalL'auteur Muhammad Aamir Ali