我是新的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(string,double,int,int)和order.class(string,double,int)。我还有一个productAdapter for productlist,它有一些按钮可以增加/减少产品的数量。
答案 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
。但是,考虑到上述想法,这一切都归结为更清晰地构建代码。