Исходя из кода, который вы опубликовали, источником проблемы могут быть две точки.
Во-первых, это множественные вызовы GeoQueryEventListener.onKeyEntered()
, чтобы исправить это, вы можете обойти это так:
try{
MyItem myItem = new MyItem(location.latitude, location.longitude);
if (!items.contains(myItem)) {
items.add(myItem);
}
Log.d("onKey","called");
}catch (ClassCastException e){
Log.d("classCastException","");
}
Во-вторых, может быть, вы забыли переопределить методы equals()
и hashcode()
класса MyItem
.Поэтому, когда вы звоните items.removeAll(itemss);
, ни один элемент не был удален.
В обоих случаях требуется переопределение equals()
и hashcode()
методов класса MyItem
.Это легко сделать с функцией автогенерации в AndroidStudio.