2016-07-23 8 views
0

私はAndroid App上でGoogle Mapsを使用しています。 Gradleの前にGoogleの新しいバージョンは、フラグメントを得るために、それは次のコードで動作するサービスを再生する:Googleマップ.getMap()非推奨

私はバージョン9.2.1にアップデートしているので
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 

、.getMap()が赤である(非推奨)。フラグメントを宣言する新しい慣行がありますか?

回答ありがとうございます。

答えて

4

getMap()をgetMapAsync()に置き換える必要があります。

公式のドキュメントによると、get map asyncはコールバックを必要とし、これはメインのGoogleマップのものを行う場所です。下のスニペットを見てください。

public class MapPane extends Activity implements OnMapReadyCallback { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map_activity); 

    MapFragment mapFragment = (MapFragment) getFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 

@Override 
public void onMapReady(GoogleMap map) { 
//DO WHATEVER YOU WANT WITH GOOGLEMAP 
map.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
     map.setMyLocationEnabled(true); 
     map.setTrafficEnabled(true); 
     map.setIndoorEnabled(true); 
     map.setBuildingsEnabled(true); 
     map.getUiSettings().setZoomControlsEnabled(true); 
    } 
} 

希望します。

+0

ありがとうございます。できます! –

1

getMapAsync()はよく似ています。しかし、あなたの実装を適応させる必要があります。呼び出しは非同期で、マップはすぐには持ちません。一方、マップの使用開始時にマップがロードされていないため、問題は発生しません。

関連する問題