2016-08-03 9 views
0

私はアンドロイドスタジオと私はいくつかの特定のデータ/ sを1つのarraylistから別のarraylistに渡すことができますか?現在、注文システムで作業中です。私が持っている ProductListArrayList間でデータを渡す方法は?

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

     } 
} 

オーダーリスト

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

:IAMが数量> 0

編集した場合、私のArrayListに私のArrayListから特定のデータ(名前、価格&数量)を追加しようとしていますproduct.class(s​​tring、double、int、int)とorder.class(s​​tring、double、int)の別のクラスです。私はまた、製品の数量を増減するボタンを持つproductlistのarrayAdapterを持っています。

+8

Woha、多くのコードがここに投稿されています。最小限で実行可能な例を提供することについては、ヘルプセンターを参照してください。あなたは、そのすべてを通して潜在的に多くの人々が潜んでいることは知りません。ヒントx2:Javaコーディングスタイルの規則を勉強してください。あなたはそのように_を使用しません。クラス名は常に大文字で始まります。慣習に従わないと、合理的なJavaの経験を持つ人のためにあなたのコードを読みにくくなります*。 – GhostCat

+0

基本的な命名規則に従わないため、コードを読みにくくなります。つまり、クラスは常に大文字にする必要があります。 –

+0

あなたの質問のタイトルが与えられました。あなたはこの質問を勉強したいかもしれません:http://stackoverflow.com/questions/7042182/how-to-make-a-deep-copy-of-java-arraylist ...おそらくそれはあなたが修正する必要がある知識を提供しますあなたのコード。 – GhostCat

答えて

0

一般的に、あなたが与えたコードでは、Androidの開発上の問題ではなく純粋にJavaである異なるタイプであるため、それらのArrayList間でデータを単純に「渡す」ことはできません。

"リスト間でデータを渡しますが、ここでの全体的な解決方法は、オブジェクト指向の原則に従うようにコードを再構成することです。

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" 

あなたはextends ProductことOrderクラスを作ることができるが、それは完全に必要ないないようです。例えば、ArrayList<Product>は、注文のインスタンス、または商品在庫と考えることができます。


より高度なアンドロイド関連のトピックは、そのProductクラスのParcelableを実装伴います。しかし、上記の考え方を念頭に置いて、あなたのコードをよりきれいに構造化することになります。

+0

私はさまざまな食品カテゴリ(コーヒー、パスタなど)から複数のアイテムをオーダー配列に渡して別のリストに保存し、オーダー配列を空にして新しいオーダーを取ることを考えています。データベースなしで行うか、sqlite/mysqlを使うべきですか? –

+0

データベースの有無にかかわらず、間違いなく可能ですが、回答にこれらの詳細をすべて書き出すために必要なコードがあまりにも多いです。 –

+0

そのトピックに関する新しい質問を投稿してください。あなたが気にしていないなら、入力のためにそこにタグを付けてください。 –

関連する問題