Ответ 1
У вас есть:
if (MiPedidoActivity.itemsListVMiPedido.contains( position)){}
else
MiPedidoActivity.itemsListVMiPedido.add(itemsListVMenuVINOSespumosos.get(position));
Вы проверяете, содержит ли itemsListVMiPedido
целое число, position
, но вы добавляете itemsListVMenuVINOSespumosos.get(position)
в список. Вам нужно проверить, содержит ли список их элемент, а не индекс (подумайте о нем точно так же, как и о том, что вы пытаетесь сделать: "не добавляйте элемент в список, если в списке уже содержится элемент). Вероятно, вы имеете в виду что-то вроде этого (я просто например, Item
, используйте любой класс, который есть у ваших объектов):
Item item = itemsListVMenuVINOSespumosos.get(position);
if (MiPedidoActivity.itemsListVMiPedido.contains(item)) { // <- look for item!
// ... item already in list
} else {
MiPedidoActivity.itemsListVMiPedido.add(item);
}
Кстати, в качестве предложения, если у ваших классов предметов были правильно реализованы equals()
и hashCode()
, рассмотрите LinkedHashSet
(который сохранит вставку но не допускает дубликатов). Существуют и другие Set
варианты, которые могут быть полезны (например, TreeSet
, если ваши элементы реализуют Comparable
), в зависимости от ваших требований к упорядочению/сортировке.