从另一个按钮操作调用 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
我想通过按下按钮并向其发送所需参数来触发地图上的 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