如何在ArrayLists之间传递数据?

时间:2016-08-03 17:56:18

标签: java android arraylist android-custom-view

我是新的Android工作室,我遇到麻烦,如何将一些特定的数据从一个arraylist传递到另一个arraylist。我目前正在使用订购系统。 Iam试图将我的Arraylist中的特定数据(Name,Price& Qty)添加到我的Arraylist中,如果数量> 0

编辑: 产品列表

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));

        }
}

OrderList

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.class(s​​tring,double,int,int)和order.class(s​​tring,double,int)。我还有一个productAdapter for productlist,它有一些按钮可以增加/减少产品的数量。

1 个答案:

答案 0 :(得分:0)

通常情况下,根据您提供的代码,您无法简单地通过&#34;传递&#34;这些ArrayList之间的数据因为它们是不同的类型,这不是Android开发问题,而是纯粹的Java。

遵循这种模式,你可以&#34;在列表和#34;之间传递数据,但这里的整体解决方案是重构你的代码以遵循面向对象的原则。

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
}

然后,喝咖啡&#34;课程太具描述性,而只是一个产品&#34;,其中一个&#34;咖啡&#34;是该产品的实例。

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。但是,考虑到上述想法,这一切都归结为更清晰地构建代码。