les*_*hka 31 android android-maps google-maps-android-api-2
在我的应用程序中,我有一些对象,它们的位置使用标记显示在地图上.问题是,我发现处理标记点击的唯一方法是
googleMap.setOnMarkerClickListener(new ... {
@Override
public void onMarkerClick(Marker marker) {
// how to get the object associated to marker???
}
})
Run Code Online (Sandbox Code Playgroud)
换句话说,我得到Marker对象,而我唯一的接口允许我只设置MarkerOptions.
有什么方法可以将Marker与一个对象相关联?
Bud*_*ius 54
我认为这个回调并不是非常彻底的Android团队,但是,这就是我们所拥有的.
无论何时调用mMap.addMarker();它都会返回生成的标记.然后,您可以使用HashMap或其他一些数据持有者结构来记住它.
// Create the hash map on the beginning
WeakHashMap <Marker, Object> haspMap = new WeakHashMap <Marker, Object>();
// whenever adding your marker
Marker m = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World").icon(icon_bmp));
haspMap.put(m, your_data);
Run Code Online (Sandbox Code Playgroud)
Zam*_*ara 31
Marker amarker = mMap.addMarker(new MarkerOptions().position(lat, lng).title("Hello World"));
amarker.setTag(new SomeData());
Run Code Online (Sandbox Code Playgroud)
要检索与标记关联的数据,只需使用其getTag()读取它,然后将其转换为其原始类型.
SomeData adata = (SomeData) amarker.getTag();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18678 次 |
| 最近记录: |