2016-11-02 1 views

Répondre

0

Sans voir plus de votre code, je suppose que leurs valeurs lat/lng sont les mêmes, cependant, ils ne sont pas le même objet. Si vous utilisez l'objet LatLng dans le Google APIs the equal method, il suffit de comparer les valeurs lat et long, et non pas le même objet.

Donc le spearearray ne contient que l'un des objets et renvoie -1 parce que l'autre n'existe pas dans le spearearray.

1

En interne, SparseArray conserve les valeurs dans le tableau Objects. Dans la méthode indexOfValue(E value) la value est comparée avec les éléments du tableau by reference (not logical value):

public int indexOfValue(E value) { 
    for (int i = 0; i < mSize; i++) 
     if (mValues[i] == value) 
      return i; 

    return -1; 
} 

Variables latLng et latlng1 font référence à des objets différents dans la mémoire, malgré elles sont égales logiquement.