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