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