ArrayList之间如何传递数据?

How to pass data between ArrayLists?

我是 android 工作室的新手,我在如何将一些特定的 data/s 从一个数组列表传递到另一个数组列表时遇到了问题。我目前正在使用订购系统。如果 Qty > 0,我正在尝试将特定数据(名称、价格和数量)从我的 Arraylist 添加到我的 Arraylist。

已编辑: 产品列表

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", .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
        }
}

我有一个单独的 class 用于 product.class(string, double, int, int) 和 order.class(string, double, int)。我还有一个 arrayAdapter for productlist,它有按钮 increment/decrement 产品的数量。

通常,使用您提供的代码,您不能简单地 "pass" ArrayList 之间的数据,因为它们是不同的类型,这不是 Android 开发问题,而是纯粹 Java。

遵循这个模式,你 可以 "pass data between lists",但这里的整体解决方案是重构你的代码以遵循面向对象的原则。

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
}

那么,"coffee" class 描述性太强,而只是 "product",其中 "coffee" 是该产品的实例。

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 class extends Product,但这似乎不是完全必要的;例如,ArrayList<Product> 可以被视为订单或产品库存的实例。


更高级的 Android 相关主题涉及为 Product class 实施 Parcelable。但是,考虑到上述想法,这一切都归结为更清晰地构建代码。