我想從我的地圖中刪除我的所有itemizedoverlay,但我做不到,我不知道爲什麼。 我讀過很多教程,並在所有這些有以下解決方案:安卓:刷新地圖,並清除所有itemizedoverlay
itemizedoverlay.clear();
mMapView.invalidate();
但它不工作!
我想其中首先我做了(在onPreExecute())這樣做在的AsyncTask:
itemizedoverlay.clear();
mMapView.invalidate();
然後我得到我所有的GeoPoint從我的服務器,我創建了一個myitemizedoverlay對象的列表(在doInBackground()),我把他們在地圖上像這樣(在onPostExecute()):
for (int i = 0; i < myListOfOverlayItem.size(); i++) {
itemizedoverlay.addOverlay(myListOfOverlayItem.get(i));
}
overlays.add(itemizedoverlay);
爲什麼我的代碼不更新我的地圖嗎? : -/
這是明確的代碼:
public void clear(){
this.m_overlays.clear();
setLastFocusedIndex(-1);
populate();
}
感謝
嘗試遵循這個模式:在'doInBackground()'創建的覆蓋,在'onPostExecute()''執行明確的()',然後添加疊加,然後調用'invalidate'。如果'onPreExecute()'在** UI線程**或**後臺線程**上運行,請檢查文檔。如果它在後臺線程上運行,我認爲**使地圖視圖**無效是不安全的。 – JJD