Zin*_*tet 23 android google-maps
我正在尝试根据POJO id为每个匹配 API的标记设置onInfoWindowClickListener.这就是我在设置onInfoWindowClick事件时发现的.
googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
// TODO Auto-generated method stub
}
});
Run Code Online (Sandbox Code Playgroud)
不过,我需要设置相关的POJO的ID作为标签相关的标志物我之前做googleMap.addMarker(marker).但没有这样的事情marker.setTag().如何在不设置标签的情况下放置我的ID?
Bal*_*yak 74
现在你可以这样做
将您的Google Play服务版本更新为
com.google.android.gms:play-services:9.4.0
Marker marker=mMap.addmarker(new MarkerOptions(LatLang));
// set object as tag
marker.setTag(your object)
// to retrieve the marker
marker.getTag();// Type cast to your object type;
Run Code Online (Sandbox Code Playgroud)
我有一个方法.只需HashMap使用您的主要Marker和另一个创建,并根据特定 点击POJO Class返回您POJO Class的MarkergetInfoContents(.....)
尝试在地图标记上调用 setTag() 方法,而不是在 MarkerOptions 对象上调用。例如,
private void addMk(LatLng latLng, String title, String snips,String tagId) {
MarkerOptions options = new MarkerOptions()
.position(latLng)
.title(title)
.snippet(snips);
googleMap //Google googleMap object for map reference
.addMarker(options)
.setTag(tagId);
}
googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
// TODO Auto-generated method stub
String tagId= String.valueOf(marker.getTag());
Log.d(TAG, "onInfoWindowClick: TAG_ID "+tagId);
}
});
Run Code Online (Sandbox Code Playgroud)
希望,这有效!