2016-10-13 35 views
0

在我的應用我有一個ArrayList標記,正是:從地圖和列表的個別標記的刪除,一起

public ArrayList<Marker> listMarker = new ArrayList<Marker>(); 
    public int p = listMarker.size(); 
    public Marker singleMarker; 

我把標誌物ArrayList如下:

MarkerOptions options = new MarkerOptions() 
       .position(latLng); 
listMarker.add(p, singleMarker = nMap.addMarker(options)); 

我一直在尋找對於現場相同的問題,我還沒有找到 現在我試圖做到這一點,每按一次按鈕將從地圖和列表中刪除最後一個標記。如果我有5個標記,點擊是4,下一個點擊是3,依此類推。但是,不僅從列表中,並且還從地圖上看,最大的問題

我嘗試不喜歡這個工作:

deleteButton.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View view) { 

     listMarker.remove(k); 

    } 
}); 

按鈕沒有從地圖上刪除Marker。我懷疑這隻會從列表中刪除最後一個標記,但不會從地圖中刪除,也不知道如何處理它。

+0

這是非常不清楚的。很難說出問題是什麼,或者你在問什麼。 – Tibrogargan

回答

2

目前您只能從列表中刪除標記,地圖是要守住它,直到你明確地將其刪除...呼叫卸下標記從地圖中刪除它,就像這樣:

deleteButton.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View view) { 
     if (listMarker != null && !listMarker.isEmpty()) { 
      listMarker.get(k).remove(); // Add this line 
      listMarker.remove(k); 
     }  
    } 
}); 
+0

我試了幾個小時,謝謝! 現在,當我沒有在地圖上標記,我點擊按鈕,我得到錯誤:「java.lang.IndexOutOfBoundsException:索引0無效,大小爲0」。你知道如何解決它? – thomas2k2k

+0

在刪除之前添加一個簡單的檢查以查看列表是否爲空;看到更新的代碼。我鼓勵你在進一步詢問Stackoverflow之前做更多的學習,因爲這些是相當基本和具體的事情......你將通過一些自我調查獲得更深入的知識! – Demonsoul

+0

非常感謝! – thomas2k2k