从另一个按钮操作调用 onMapClick() 操作

Calling the onMapClick() action from another button action

我想通过按下按钮并向其发送所需参数来触发地图上的 onMapClick() 操作。以下是运行每当触摸地图时:

    @Override
    public void onMapClick(LatLng point) {

        // animate camera to centre on touched position
        mMap.animateCamera(CameraUpdateFactory.newLatLng(point));

        // Adding new latlng point to the array list
        markerPoints.add(point);

        // Creating MarkerOptions object
        MarkerOptions marker = new MarkerOptions();

        // Sets the location for the marker to the touched point
        marker.position(point);

    }

我希望此按钮复制与触摸屏幕相同的操作,除非我手动传递一个值:

    mButtonCompleteLoop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            onMapClick(markerPoints.get(0));

        }
    });

出现错误,提示无法解析 onMapClick()。有某种方法可以做到这一点吗?或者将 onMapClick() 代码提取到一个单独的方法中,然后可以从两者调用更好?

如果不查看您的 activity/fragment

的整个代码,很难猜测原因

也许您将地图侦听器设置为匿名 class。
如果是这样,而不是:

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
    @Override
    public void onMapClick(LatLng latLng) {
        //this 
    }
});

你应该让你的 activity 实现 GoogleMap.OnMapClickListener 并像这样设置监听器

mMap.setOnMapClickListener(this);

然后你可以从任何地方调用 OnMapClick