我想通过按下按钮并向其发送所需的参数来触发地图上的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()代码提取到一个可以从两者中调用的单独方法中更好?
最佳答案
如果不查看活动/片段的完整代码,就很难猜测原因。
也许您将地图侦听器设置为匿名类。
如果是这样,请改为:
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
//this
}
});
您应该使自己的活动实现GoogleMap.OnMapClickListener并像这样设置侦听器
mMap.setOnMapClickListener(this);
然后您可以从任何地方致电OnMapClick