Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法解析getMap()或替换为getMapAsync()_Android_Google Maps Android Api 2 - Fatal编程技术网

Android 无法解析getMap()或替换为getMapAsync()

Android 无法解析getMap()或替换为getMapAsync(),android,google-maps-android-api-2,Android,Google Maps Android Api 2,我是android编程新手,已经为这个问题挣扎了一段时间。我听说getMap()已被弃用,取而代之的是getMapAsync() 但是,我似乎找不到使用getmayanc()的方法,因为它使用了一个片段资源,而且我到目前为止还不需要映射的片段资源 这是我的密码: public class RunMapFragment extends SupportMapFragment { private static final String ARG_RUN_ID = "RUN_ID"; pr

我是android编程新手,已经为这个问题挣扎了一段时间。我听说getMap()已被弃用,取而代之的是getMapAsync() 但是,我似乎找不到使用getmayanc()的方法,因为它使用了一个片段资源,而且我到目前为止还不需要映射的片段资源

这是我的密码:

public class RunMapFragment extends SupportMapFragment {
    private static final String ARG_RUN_ID = "RUN_ID";
    private GoogleMap mGoogleMap;
    public static RunMapFragment newInstance(long runId) {
        Bundle args = new Bundle();
        args.putLong(ARG_RUN_ID, runId);
        RunMapFragment rf = new RunMapFragment();
        rf.setArguments(args);
        return rf;
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent,
                             Bundle savedInstanceState) {
        View v = super.onCreateView(inflater, parent, savedInstanceState);
        mGoogleMap = getMap(); //Error here
        mGoogleMap.setMyLocationEnabled(true);
        return v;
    }
}
任何帮助都将不胜感激。 是否可以将map API minimum sdk回滚到verison 9,在那里可以使用getMap()。

使用
getMap()
方法,因此您需要使用
getMapAsync()

当片段直接扩展SupportMapFragment时,不需要重写
onCreateView()

相反,只需从
onResume()
override调用
getmapsync()
,并使用
onMapReady()中返回的Google地图引用
override:

public class RunMapFragment extends SupportMapFragment {
    private static final String ARG_RUN_ID = "RUN_ID";
    private GoogleMap mGoogleMap;
    public static RunMapFragment newInstance(long runId) {
        Bundle args = new Bundle();
        args.putLong(ARG_RUN_ID, runId);
        RunMapFragment rf = new RunMapFragment();
        rf.setArguments(args);
        return rf;
    }

    @Override
    public void onResume() {
        super.onResume();
        if (mGoogleMap == null) {
            getMapAsync(this);
        }
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap = googleMap;
        mGoogleMap.setMyLocationEnabled(true);
    }
}
请注意,如果您的目标是api-23或更高版本,则在使用
setMyLocationEnabled()
方法之前,需要确保用户在运行时已批准位置权限,有关更多信息,请参阅