2011-01-11 29 views
0

我在地圖上有2個標記,我想在用戶點擊按鈕時刪除它們。這是我的方法:如何在Android中單擊一次即可從mapview中刪除所有標記?

public void deleteAllMarkers() { 
    if(mapView.getOverlays().size() !=0) { 
     //Log.d("MAPA ",Integer.toString(mapView.getOverlays().size())); 
     for (int i=0; i<mapView.getOverlays().size(); i++) { 
      mapView.getOverlays().remove(i); 
     } 
     mapView.postInvalidate(); 
    } 
} 

的問題是,我必須按我的按鈕兩次擺脫這兩個標記的,因爲之後的第一隻按1標記消失。

我在做什麼錯了?

回答

3

.size()會得到每次迭代重新評估,你已經移除的元素後,即0

這將是更容易寫:

mapView.getOverlays().clear(); 
+0

我已經成功地使用該功能的幾個(onPause()`...),但我徘徊爲什麼它不起作用,當我在這個上下文中調用它:`onLocationChanged(Location location){mapview.getOverlays()。clear() ;}`。如果有人知道這個問題,請告訴我...... – AlexAndro 2012-06-27 13:03:57

相關問題