Как передать данные между ArrayLists?

Я новичок в Android Studio и у меня возникли проблемы с тем, как я могу передать некоторые конкретные данные из одного массива в другой. В настоящее время я работаю с системой заказов. Я пытаюсь добавить конкретные данные (Имя, Цена и Кол-во) из моего Arraylist в мой Arraylist, если Qty > 0.

Отредактировано: ProductList

public class product_List extends ListFragment{
ArrayList<product> productList;
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        productList = new ArrayList<product>;

        productList.add(new product("Pasta 1", $10.00, 0(this is for Quantity), R.drawable.pastaIcon1));

        }
}

Список заказа

public class order_List extends ListFragment {

ArrayList<order> orderList;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        orderList = new ArrayList<order>;

        // HERE I want to add the product/s if its quantity > 0
        }
}

У меня есть отдельный класс для product.class(string, double, int, int) и order.class(string, double, int). У меня также есть arrayAdapter для productlist, в котором есть кнопки, которые увеличивают / уменьшают количество товара.

1 ответ

Решение

Как правило, с помощью кода, который вы дали, вы не можете просто "передавать" данные между этими ArrayList, потому что это разные типы, что не является проблемой разработки Android, а является чисто Java.

Следуйте этой схеме, и вы можете "передавать данные между списками", но общее решение здесь состоит в том, чтобы реструктурировать ваш код в соответствии с объектно-ориентированными принципами.

class Product {
    int id; // Some unique identifer
    String name; // What the product is called
    double cost; // What it costs
    int resourceId; // A resource ID for Android to draw for this
}

Тогда класс "кофе" является слишком описательным, скорее это просто "продукт", где "кофе" является экземпляром этого продукта.

Product coffee = new Product("coffee");
ArrayList<Product> orders1 = new ArrayList<>();
orders.add(coffee);

ArrayList<Product> orders2 = new ArrayList<>();
orders2.add(orders1.get(0)); // "passing"

Вы могли бы сделать Order класс это extends Productно это не кажется абсолютно необходимым; ArrayList<Product> например, можно считать экземпляром заказов или товарным запасом.


Более продвинутые темы, связанные с Android, включают реализацию Parcelable для этого Product учебный класс. Но, учитывая вышеизложенную идею, все сводится к более четкой структуризации вашего кода.

Другие вопросы по тегам