Android 如何在点击按钮setMyLocationEnabled后直接在Google地图上添加标记?

Android 如何在点击按钮setMyLocationEnabled后直接在Google地图上添加标记?,android,google-maps,Android,Google Maps,我做了一个密码。 在这段代码中,当我单击地图时,在单击的点上会有一个标记 这是我的代码 public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate

我做了一个密码。 在这段代码中,当我单击地图时,在单击的点上会有一个标记

这是我的代码

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(final GoogleMap googleMap) {
        mMap = googleMap;
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            mMap.setMyLocationEnabled(true);
        } else {
            Toast.makeText(getApplicationContext(), "oh, no", Toast.LENGTH_LONG).show();
        }
        googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng point) {
                String lat = String.valueOf(point.latitude);
                String lng = String.valueOf(point.longitude);
                MarkerOptions marker = new MarkerOptions().position(
                        new LatLng(point.latitude, point.longitude)).title("ok");
                mMap.addMarker(marker);
            }
        });
    }
}
问题: 我想要的是,当我单击SetMylocationEnable按钮时,还添加了一个新标记。因为我想标记是整个地图中唯一的一个,所以之前在地图中的另一个标记将被删除。我怎么做?你能教我吗

你们可以在图中看到我说的按钮是什么。(图片来自:)


保留对标记的引用,如果引用为空,则按您所做的方式创建标记,如果不是,则编辑标记并更改其位置

@Cabezas getMyLocation()不推荐使用,您可以更新答案吗?
mMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {
    @Override
    public boolean onMyLocationButtonClick() {
        Location location = getLocation();
        MarkerOptions marker = new MarkerOptions().position(
                new LatLng(location.getLatitude(), location.getLongitude())).title("ok");
        mMap.addMarker(marker);
        return true;
    }
});

private Location getLocation() {
    LocationManager locationManager = (LocationManager)
            getSystemService(Context.LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    return locationManager.getLastKnownLocation(locationManager
            .getBestProvider(criteria, false));

}