如何将overlayItem对象添加到数组?

时间:2012-05-28 12:05:48

标签: java android arrays list itemizedoverlay

您能告诉我如何将overlayItem对象添加到数组中吗? 我试着用这种方式:

    GeoPoint point = new GeoPoint((int)(Double.parseDouble(arrCoordonate[1])),(int)(Double.parseDouble(arrCoordonate[0])));
    OverlayItem overlayItem = new OverlayItem(point, Double.parseDouble(arrCoordonate[1]) + "", Double.parseDouble(arrCoordonate[0]) +"");
    List<OverlayItem> arrItem[] = overlayItem;

但我收到了一个错误:

  

类型不匹配:无法从OverlayItem转换为List []

2 个答案:

答案 0 :(得分:1)

您正在混合数组和列表。如果您不必使用数组,则使用列表会更容易,在这种情况下您可能需要编写:

List<OverlayItem> itemList = new ArrayList<OverlayItem> (); // create an empty list
itemList.add(overlayItem); // add you item to the list

如果你想使用一个数组,你会这样写 - 但你需要自己管理数组的大小(这就是为什么使用上面的列表更容易):

OverlayItem[] itemArray = new OverlayItem[10]; //if you only need to insert 10 items
itemArray[0] = overlayItem;

答案 1 :(得分:0)

这是正确的,因为请查看decleartion:OverlayItem overlayItemList<OverlayItem> arrItem[] 因此,如果您arrItem[] = overlayItem隐含声明List<OverlayItem> = OverlayItem。 :)
(我不确定,但我认为变量名称末尾的[]更糟糕。我认为括号是为数组保留的,因此List<OverlayItem> arrItem[]会产生数组< / em> of 列表 oO)

您想要创建一个新的OverlayItem列表,然后将该项添加到此列表中。我不确定您是否可以直接实例List所以我使用ArrayList

GeoPoint point = new GeoPoint((int)(Double.parseDouble(arrCoordonate[1])),(int)(Double.parseDouble(arrCoordonate[0])));
    OverlayItem overlayItem = new OverlayItem(point, Double.parseDouble(arrCoordonate[1]) + "", Double.parseDouble(arrCoordonate[0]) +"");
    ArrayList<OverlayItem> arrItem = new ArrayList<OverlayItem>();
    arrItem.add(overlayItem);