如何在ArrayLists之间传递数据?

问题描述:

即时通讯新的Android工作室和即时通讯有麻烦,我怎么可以将一些特定的数据/ s从一个arraylist传递到另一个arraylist。我目前正在使用订购系统。荫试图从我的ArrayList中添加特定的数据(名称,价格&数量),以我的ArrayList,如果数量> 0如何在ArrayLists之间传递数据?

编辑: 产品列表

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 
     } 
} 

我有product.class(s​​tring,double,int,int)和order.class(s​​tring,double,int)的单独类。我还有一个用于产品列表的数组适配器,它具有可增加/减少产品数量的按钮。

+8

Woha,你在这里发布的很多代码。也许你想转到帮助中心阅读关于提供最小,可行的例子。你看,你不会发现许多人愿意通过所有这些。提示x2:请学习java编码风格约定。你不使用_这样的;类名始终以大写字母开头。不遵守惯例会让你的代码更难读懂任何具有合理Java经验的人。 – GhostCat

+0

您的代码很难阅读,因为您没有遵循基本的命名约定,即类总是应该大写。 –

+0

鉴于你的问题的标题,你可能想研究这个问题:http://stackoverflow.com/questions/7042182/how-to-make-a-deep-copy-of-java-arraylist ...可能会给你你需要修复的知识你的代码。 – GhostCat

通常情况下,由于您提供的代码不能简单地在那些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" 

你可以做一个Orderextends Product,但似乎并没有完全必要的;例如,ArrayList<Product>可被视为订单或产品库存的实例。


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

+0

我想从不同的食物类别(咖啡,面食等)多个项目传递到订单数组,然后将它们保存到另一个列表和清空订单数组采取新的命令..我的问题是,是否有可能没有数据库,或者我应该使用sqlite/mysql? –

+0

无论是否有数据库,这绝对是可能的,但是在这里写出所有这些详细信息的代码太多了 –

+0

我看到了,虐待尝试发布有关该主题的新问题。如果你不介意的话,那么你在那里为你的投入贴上标签。 –