区分Maps API v2中的不同标记(唯一标识符)

Asi*_*sim 6 android android-maps-v2

我有一个自定义类的ArrayList.列表中大约有10个对象,每个对象都有Title,Snippet,LatLng等详细信息.我已经使用我的自定义类函数(如getTitle,getSnippet,getLatLng等)将所有10个成功添加到Map中.

现在,当我单击信息窗口(标记)时,我希望能够以某种方式知道我的自定义类的哪个对象与该标记对应.

例如,如果我点击麦当劳市场,我希望能够知道我的ArrayList中哪个项目属于该标记.

我一直在看MarkerOptions,似乎没有什么可以用来识别相关的自定义对象.

如果问题太混乱,那么让我简单一点:

ArrayList<CustomObj> objects = blah
map.addMarker(new MarkerOptions().position(new LatLng(
                            Double.parseDouble(result.get(i).getCompanyLatLng()
                                    .split(",")[0]), Double.parseDouble(result
                                    .get(i).getCompanyLatLng().split(",")[1])))
                                    .title(result.get(i).getCompanyName())
                                    .snippet(result.get(i).getCompanyType())
                                    .icon(BitmapDescriptorFactory
                                            .fromResource(R.drawable.pin)));
Run Code Online (Sandbox Code Playgroud)

现在,当点击它时,我继续下一页.下一页需要知道单击了WHICH对象,以便我可以将其他详细信息发送到该页面(例如,需要加载的图像URL等).

如何在标记中添加唯一的整数或任何标识符?

Mac*_*ski 6

一种正确的方法是使用Map<Marker, CustomObj>哪个存储所有标记:

Marker marker = map.addMarker(...);
map.put(marker, result.get(i));
Run Code Online (Sandbox Code Playgroud)

并在onInfoWindowClick:

CustomObj obj = map.get(marker);
Run Code Online (Sandbox Code Playgroud)

另一个尝试是使用Android Maps Extensions,它添加getDatasetData方法Marker,因此您可以CustomObj在创建标记后分配对象并在任何回调中检索它.