我正在创建一个显示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);
当我尝试在"另一方面提取这些数据时#34;通过获取参数,userId始终为null ...我已经定义了userId:
final String userId = parseUsers.get(i).getObjectId();
我甚至尝试在userId中对字符串进行硬编码,当我尝试获取参数时它仍然返回null:
final String userId = "test userId";
以下是标记onCreateDialog方法的get参数代码:
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,我有每个项的值。谁能帮助我指出正确的方向?我只想传递一个与变量相关的值,并将其与地图上创建的每个标记绑定。谢谢!
答案 0 :(得分:0)
您无法再向标记添加数据。 因此,如果您想向标记添加更多数据,则必须将其存储在带有标记ID(getID())
的外部变量中例如 -
HashMap<int,Object> extramarkerData = new HashMap<int,Object>();
并将数据放入hashmap
extramarkerData.put(marker.getId(),"additional data");