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

时间:2015-08-16 07:44:29

标签: java android android-studio google-maps-android-api-2

我想通过按下按钮并向其发送所需参数来触发地图上的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()代码提取到一个单独的方法中,然后可以从两个方法中调用它们?

1 个答案:

答案 0 :(得分:1)

如果不查看活动/片段的整个代码

,很难猜测原因

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

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

您应该让您的活动实现GoogleMap.OnMapClickListener并像这样设置侦听器

mMap.setOnMapClickListener(this);

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