【发布时间】:2015-10-13 05:51:50
【问题描述】:
我正在创建一个显示 Parse 查询结果的地图。我可以将信息直接传递到标记中,例如标题或纬度/经度,但我想包含一些附加信息(不显示),当用户单击标记时可以使用这些信息。 例如,当用户单击标记时,我想从 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);
当我尝试通过获取参数在“另一边”提取此数据时,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 嵌入到标记信息窗口。当用户点击信息窗口时,它应该将参考 ID 传递给新的意图。我可以在 sn-p 中传递我想要的字符串,但我不希望用户实际看到该信息
标签: android google-maps google-maps-api-3 arguments google-maps-markers