Sto provando a visualizzare una mappa semplice utilizzando Google map API v2 in un'applicazione Android. Sto seguendo le istruzioni Map API Documentation. Ma penso che lo onMapReady
non stia chiamando per qualche motivo. Sto usando la versione google-play-services_lib
6587000
. Il mio telefono ha google-play-services_lib
verion 6587038
, credo.onMapReady non chiama nonostante la visualizzazione della mappa senza errori
Google map funziona con i controlli iniziali. Qualcuno può aiutarmi a correggere questo errore?
public class MapDisplay extends FragmentActivity
implements OnMapReadyCallback {
private GoogleMap mMap;
private Location mCurrentLocation;
private MarkerOptions mMarkerOptions ;
private MapFragment mMapFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.location_map);
/** not needed
mMapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction =
getFragmentManag
er().beginTransaction();
fragmentTransaction.add(R.id.map, mMapFragment);
fragmentTransaction.commit();*/
/**corrected code*/
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
toast("Map ready");
Log.d("--***** MAP ","::Map ready");
LatLng sydney = new LatLng(-33.867, 151.206);
map.setMyLocationEnabled(true);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 13));
map.addMarker(new MarkerOptions()
.title("Sydney")
.snippet("The most populous city in Australia.")
.position(sydney));
}
private void toast(String text){
Toast toast = Toast.makeText(this, text, Toast.LENGTH_SHORT);
toast.show();
}
}
file di location_map.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Aggiunto getMapAsync(). ora onMapReady sta funzionando. – SAN
@ SAN: "getMapAsync() throw and error" - quindi forse dovresti considerare di chiedere una domanda di overflow dello stack per ottenere assistenza con qualsiasi problema tu abbia lì. "così ho dovuto usare" - quindi? AFAIK, devi comunque chiamare 'getMapAsync()'. Inoltre, ora hai * due * istanze di MapFragment'. Ecco un esempio di progetto che dimostra l'uso di 'getMapAsync()' con un 'MapFragment' statico: https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2/NooYawk – CommonsWare
Sarà utile per alcuni altrimenti se in xml il tuo
Nepster