从Map和List中删除单个Marker

时间:2016-10-13 18:44:38

标签: android google-maps-android-api-2

在我的应用程序中,我有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。我怀疑这只会删除列表中的最后一个标记,但是不会从地图中删除,也不知道如何处理它。

1 个答案:

答案 0 :(得分:2)

目前你只是从List中移除标记,Map将保留它,直到你明确删除它...在Marker上调用remove将其从地图中删除,如下所示:

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);
        }    
    }
});