【问题标题】:The remove of individual Marker from Map and List, together从地图和列表中删除单个标记,一起
【发布时间】:2017-02-23 00:41:48
【问题描述】:

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

【问题讨论】:

  • 这个很不清楚。很难说是什么问题,或者你在问什么。

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


【解决方案1】:

目前您只是从列表中删除标记,地图将保留它,直到您明确删除它...调用标记上的 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);
        }    
    }
});

【讨论】:

  • 我试着做了几个小时,谢谢!现在,当我没有地图标记并单击按钮时,出现错误:“java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0”。你知道怎么解决吗?
  • 在删除前添加一个简单的检查列表是否为空;查看更新的代码。我鼓励您在就 Stackoverflow 提出更多问题之前多学习一些知识,因为这些都是相当基本和具体的事情……通过一些自我调查,您将获得更深入的知识!
  • ups,我更新代码仍然得到“java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0”
  • 嗯,您确定您正确复制了代码吗?如果列表大小为 0,如错误所示,!listMarker.isEmpty() 将返回 false,因此不应尝试删除标记。
  • 啊,它发生了。不用担心!
猜你喜欢
  • 2015-03-24
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
相关资源
最近更新 更多