osmdroid 中 MyInfoWindow 继承 InfoWindow。 如何批量清除回收。 给出具体代码优化
要批量清除回收 osmdroid 中的 MyInfoWindow,可以使用以下代码:
// 创建一个集合来保存所有的 MyInfoWindow
List<MyInfoWindow> infoWindows = new ArrayList<>();
// 创建 MyInfoWindow 类,继承 InfoWindow
public class MyInfoWindow extends InfoWindow {
// 添加构造方法,并在构造方法中保存 MyInfoWindow 到集合中
public MyInfoWindow(int layoutResId, MapView mapView) {
super(layoutResId, mapView);
infoWindows.add(this);
}
// 添加其他需要的方法和属性
// ...
}
// 批量清除回收 MyInfoWindow
public void clearInfoWindows() {
for (MyInfoWindow infoWindow : infoWindows) {
if (infoWindow.isOpen()) {
infoWindow.close();
}
infoWindow.onDetach();
}
infoWindows.clear();
}
这样,你可以通过调用 clearInfoWindows() 方法来批量清除回收所有的 MyInfoWindow。同时,通过将 MyInfoWindow 实例保存到 infoWindows 集合中,在需要的时候可以进行其他操作,如打开、关闭等
原文地址: http://www.cveoy.top/t/topic/hHCo 著作权归作者所有。请勿转载和采集!