我可以在地图标记中包含哪些参数
What arguments can I include with a map marker
我正在创建一个显示 Parse 查询结果的地图。我可以将信息直接传递到标记中,例如标题或 lat/long,但我想包含一些附加信息(不显示),当用户单击标记时我可以使用这些信息。
例如,当用户单击标记时,我想从 Parse 查询(它只是一个字符串)中找到用户的 objectId。
我在标记 onClickListener 中尝试了以下代码以将字符串作为参数放入:
destPosition = marker.getPosition();
destLat = destPosition.latitude;
destLong = destPosition.longitude;
MarkerDialogFragment markerDialogFragment = new MarkerDialogFragment();
Bundle args = new Bundle();
args.putString("id", marker.getId());
args.putString("userId", userId);
args.putString("title", marker.getTitle());
args.putDouble("latitude", destLat);
args.putDouble("longitude", destLong);
markerDialogFragment.setArguments(args);
当我尝试通过获取参数在 "other side" 上提取此数据时,userId 始终显示为 null...我已将 userId 定义为:
final String userId = parseUsers.get(i).getObjectId();
我什至尝试过对 userId 中的字符串进行硬编码,但当我尝试获取参数时它仍然返回 null:
final String userId = "test userId";
这是标记 onCreateDialog 方法的获取参数代码:
builder = new AlertDialog.Builder(getActivity());
final String markerId = getArguments().getString("id");
final String userId = getArguments().getString("userId");
final String title = getArguments().getString("title");
final double destLat = getArguments().getDouble("latitude");
final double destLong = getArguments().getDouble("longitude");
builder.setTitle(title)
当我使用调试器停止代码以查看值时,所有数据都按预期设置,并且我对除 userId 之外的每个项目都有值。谁能帮我指出正确的方向?我只是想传递一个与变量关联的值,并将其绑定到地图上创建的每个标记。谢谢!
您不能再向标记添加数据。
因此,如果您想向标记添加更多数据,则必须将其存储在具有标记 ID (getID())
的外部变量中
如-
HashMap<int,Object> extramarkerData = new HashMap<int,Object>();
并将数据放入hashmap
extramarkerData.put(marker.getId(),"additional data");
我正在创建一个显示 Parse 查询结果的地图。我可以将信息直接传递到标记中,例如标题或 lat/long,但我想包含一些附加信息(不显示),当用户单击标记时我可以使用这些信息。 例如,当用户单击标记时,我想从 Parse 查询(它只是一个字符串)中找到用户的 objectId。 我在标记 onClickListener 中尝试了以下代码以将字符串作为参数放入:
destPosition = marker.getPosition();
destLat = destPosition.latitude;
destLong = destPosition.longitude;
MarkerDialogFragment markerDialogFragment = new MarkerDialogFragment();
Bundle args = new Bundle();
args.putString("id", marker.getId());
args.putString("userId", userId);
args.putString("title", marker.getTitle());
args.putDouble("latitude", destLat);
args.putDouble("longitude", destLong);
markerDialogFragment.setArguments(args);
当我尝试通过获取参数在 "other side" 上提取此数据时,userId 始终显示为 null...我已将 userId 定义为:
final String userId = parseUsers.get(i).getObjectId();
我什至尝试过对 userId 中的字符串进行硬编码,但当我尝试获取参数时它仍然返回 null:
final String userId = "test userId";
这是标记 onCreateDialog 方法的获取参数代码:
builder = new AlertDialog.Builder(getActivity());
final String markerId = getArguments().getString("id");
final String userId = getArguments().getString("userId");
final String title = getArguments().getString("title");
final double destLat = getArguments().getDouble("latitude");
final double destLong = getArguments().getDouble("longitude");
builder.setTitle(title)
当我使用调试器停止代码以查看值时,所有数据都按预期设置,并且我对除 userId 之外的每个项目都有值。谁能帮我指出正确的方向?我只是想传递一个与变量关联的值,并将其绑定到地图上创建的每个标记。谢谢!
您不能再向标记添加数据。 因此,如果您想向标记添加更多数据,则必须将其存储在具有标记 ID (getID())
的外部变量中如-
HashMap<int,Object> extramarkerData = new HashMap<int,Object>();
并将数据放入hashmap
extramarkerData.put(marker.getId(),"additional data");