新的Android API中的getMap()方法对我来说无法正常工作

Ner*_*hne 2 java android

样例代码:

        SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map_fragment);
        mMap = mapFragment.getMap();
Run Code Online (Sandbox Code Playgroud)

但它没有按预期工作。

然后我替换getMapAsync(this)method。仍然没有用。

Rav*_*avi 5

您需要实施 OnMapReadyCallback

public class MainActivity extends Activity implements OnMapReadyCallback{

}
Run Code Online (Sandbox Code Playgroud)

所以onCreate()的代码将是

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map_fragment);
mapFragment.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

和重写的方法onMapReady()将如下所示

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
}
Run Code Online (Sandbox Code Playgroud)