То, что private List<CartItem> getOrganizedAddedItems()
и onCreate()
- оба сами по себе методы, так что вы не будете добавлять метод внутри них. Похоже, вы создаете ListView и добавляете к нему строки, каждая строка содержит объект CartItem.
Если это правильно, то это вложенное для l oop
for (int y = i + 1; y < addedItems.size(); y++) {
if (currentMenuItem.getName().equals(addedItems.get(y).getName())) {
quantity++;
addedItems.remove(y);
y--;
}
}
не нужно, и вы можете просто использовать что-то вроде:
for( MenuItem currentMenuItem : addedItems ){
totalPrice = currentMenuItem.getPrice() * currentMenuItem.getQuantity();
organizedAddedItems.add(new CartItem(currentMenuItem.getName(), quantity, totalPrice));
}
Это потребует небольшое изменение в Menuitem, чтобы добавить количественный параметр к нему, который может быть инициализирован в 1 и изменен при необходимости. В свою очередь, это даст вам более легкий доступ к настройке и получению количеств, не требует новых методов и, в качестве бонуса, исключит необходимость использования вложенных циклов, которые повысят вашу производительность (в данном случае это довольно незначительно, но все же лучше использовать).
В последнем абзаце вашего вопроса это, кажется, отдельная проблема, но не совсем понятно, о чем вы спрашиваете, и вам нужно будет добавить более подробную информацию о том, как вы сохраняете список CartItem как в отличие от MenuItem и того, что вы пытаетесь достичь, чтобы получить больше помощи.
Кроме того, возможно, вы могли бы еще больше упростить свой код, полностью удалив CartItem и просто оставив единственную переменную класса, отслеживающую общую цену для всех объектов, но опять же, чтобы точно знать, что у вас будет чтобы описать структуру вашего кода дальше.