Как передать данные между 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
учебный класс. Но, учитывая вышеизложенную идею, все сводится к более четкой структуризации вашего кода.