2016-12-23 8 views
0

populateArrayListと別のアクティビティで設定されているObjectsがあります。私は現在、それほどのようIntentを経由して、私のMainActivitys ArrayListにデータを渡しています:複数のインテントベースのアイテムをArrayListに表示

protected void populateTransactionList() { 

    Intent depositIntent = getIntent(); 
    float addableValue = depositIntent.getFloatExtra("depositValue", 0); 

    if (addableValue != 0){ 
     myTransactions.add(new Transaction(addableValue, 16, "random comment")); 
    } 

それだけで正常に動作します。私は私のアプリで正しいビューを取得します。しかし、私がを私のArrayListに加えるとすぐに、これは古いものを置き換えます(それは意味があります)。itemsのすべてをどのように表示することができますか?

+1

を使用していたとして、別のリストの種類ごとに異なる方法を選択することができます。私はあなたが新しいArraylistを毎回初期化していると思われますが、投稿したコードからはわかりません – F43nd1r

+0

インテントに配列を渡すことによって、そのコピーを作成しています。したがって、あなたが追加しているものはコピーに何の影響も与えません。インテントを経由するのではなく、両方のアクティビティでリストにアクセスできるようにすることを検討する必要があります。 –

+0

さて、両方のアクティビティからリストにアクセスするにはどうしたらいいですか? –

答えて

0

あなたはこの

//set list 
Intent intent = new Intent(); 
Bundle bundle = new Bundle(); 
ArrayList<String> list = new ArrayList<>(); 
bundle.putStringArrayList("list",list); 
intent.putExtras(bundle); 

//get list on other activity 
list = getIntent().getExtras().getStringArrayList("list"); 

ノートのように試すことができます:あなたは、私は古いものを置き換えるべきではないアイテムを追加「putStringArrayList」

+0

get行ではIntegerが必要だが、ArrayListを取得する。 –

+0

あなたはputIntegerArrayListのようなバンドル上のあなたのデータ型ごとにメソッドを変更することができますし、反対側のgetIntegerArrayList – Khushvinder

関連する問題