arraylist的唯一标记ID

时间:2014-01-26 18:02:39

标签: android google-maps arraylist google-maps-markers

我想要做的是当有人点击谷歌地图上的标记时,我需要从我的ArrayList获取该标记的信息,然后将其传递给下一个活动,以便我可以显示有关该标记的其他详细信息标记。关于标记,我所知道的唯一选项是getSnippet,getTitle和getPosition。有没有办法为标记分配一个唯一的键,以便我可以从列表中提取它?原因是可能有两个同名的标记。现在,当我搜索它时,它甚至没有按名称找到标记。

// WHEN A USER CLICKS A MAKER ON THE MAP
       @Override
   public void onInfoWindowClick(Marker marker) 
   {
            // TESTING TO SEE WHAT MY VALUE WOULD BE IN THE LIST RETURNS - TEST MARKER             
            // DISPLAY ON SCREEN SO I CAN SEE WHAT THE VALUE IS
    Toast.makeText(this, "Found " + marker.getTitle(), Toast.LENGTH_SHORT).show();

                   // SEARCH MY LIST FOR VALUE
               for(int i = 0; i < marker_list.size(); i++) 
                {
                        // IF THIS VALUE IS SAME AS MARKER TITLE
                    String value = marker_list.get(i);

                    if(value == marker.getTitle()) 
                    {
                Toast.makeText(this, "Found " + value,Toast.LENGTH_SHORT).show();
                        break;
                    }
                }
   }

1 个答案:

答案 0 :(得分:1)

marker.toString()怎么样? 您可以使用ArrayList,而不是使用HashMap来存储标记并在列表中运行以查找您的值。添加标记后,您将marker.toString()作为关键字,将要与标记关联的任何信息作为值放入HashMap

顺便说一句:由于您比较Strings的方式,您找到点击标记的方法可能无效:

value == marker.getTitle()

检查两个String引用是否完全相同String object。要比较String values,请执行

 value.equals(marker.getTitle())