我正在使用Google Maps v2应用程序接口,并在地图上放置标记。这些标记代表不同的东西,所以我想为每一类标记都有一个自定义的InfoWindow布局。问题在于,每次选择标记时都会调用覆盖getInfoContents和getInfoWindow,这将为每个标记提供相同的布局。
有没有不同的方法,这样我就可以为不同的标记组膨胀不同的布局?
发布于 2013-03-06 01:59:50
问题是,每次选择标记时都会调用覆盖getInfoContents和getInfoWindow,这将为每个标记提供相同的布局。
他们当然不需要这样做。将Marker作为参数传递给每个方法,因此可以根据Marker中的信息执行一些不同的操作。
发布于 2013-03-06 02:02:52
但你可以。在充气标记的InfoWindow之前进行检查,并根据您的检查充气不同的布局。
当您在public View getInfoContents(Marker args)方法中接收到Marker时,创建一个if语句,该语句将测试此标记是否与您想要的类型相对应,并基于此扩展相关布局。
例如,可以通过运行以下命令来检查标记的位置坐标
clickMarkerLatLng = args.getPosition();
并在此基础上确定应该提出什么样的InfoWindow。
发布于 2013-06-04 19:12:13
它非常简单的map.setInfoWindowAdapter(新的InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
View v;
LayoutInflater inflator=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
v=inflator.inflate(R.layout.info_inflator, null);
TextView text=(TextView)v.findViewById(R.id.title);
Button ok_button=(Button) v.findViewById(R.id.ok_button);
text.setText(marker.getTitle());
ok_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
return v;
}
@Override
public View getInfoContents(Marker marker) {
// TODO Auto-generated method stub
return null;
}
});https://stackoverflow.com/questions/15230784
复制相似问题