我是android新手。我想要这个功能, 在谷歌地图活动中,当我长时间点击地图时,它会显示一个警告对话框,用于在地图上创建标记,警报对话框有两个按钮,一个用于创建标记,另一个用于取消。任何人都可以帮助我。如何使用警告对话框创建标记。
答案 0 :(得分:2)
这很简单,真的。使用onMapLongClickListener
收听长按并显示对话框,如果按下正按钮创建标记。这是一个例子:
public class MainActivity extends FragmentActivity implements
DialogInterface.OnClickListener {
private GoogleMap mMap;
private LatLng mClickPos;
@Override
public void onCreate(Bundle savedInstanceState) {
// Init activity and map
mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
@Override
public void onMapLongClick(LatLng latLng) {
mClickPos = latLng;
new AlertDialog.Builder(MainActivity.this)
.setPositiveButton("Create", MainActivity.this)
.setNegativeButton("Cancel", null)
.show();
}
});
}
@Override
public void onClick(DialogInterface dialog, int which) {
mMap.addMarker(new MarkerOptions().position(mClickPos));
}
}
答案 1 :(得分:1)
您可以将地图上的点击和长按事件处理为shown in the documentation。
地图点击/长按活动
如果您想响应用户点击地图上的某个点,您可以使用OnMapClickListener,您可以通过调用GoogleMap.setOnMapClickListener(OnMapClickListener)在地图上设置该地图。当用户在地图上的某个位置单击(轻击)时,您将收到一个onMapClick(LatLng)事件,该事件指示用户单击的地图上的位置。请注意,如果您需要屏幕上的相应位置(以像素为单位),您可以从地图获取投影,它允许您在纬度/经度坐标和屏幕像素坐标之间进行转换。
您还可以使用OnMapLongClickListener监听长按事件,您可以通过调用GoogleMap.setOnMapLongClickListener(OnMapLongClickListener)在地图上设置。此侦听器的行为与单击侦听器类似,并将通过onMapLongClick(LatLng)回调通知长按事件。
覆盖onMapClick(LatLng)
并使用您收到的LatLng创建标记。