2017-04-10 15 views
0

3つの配列を他のアクティビティに渡そうとしますが、何らかの理由で親アクティビティから渡された最後の配列だけが子に移動し、残りは残りません ここに親アクティビティコード:putStringArrayListExtra複数のArrayList <String>を別のアクティビティに渡す方法

Intent intent = new Intent(context, ItemDetailActivityCopy.class); 
intent.putStringArrayListExtra("LIST_ITEMS", itemName); 
startActivity(intent); 

を使用して

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_category_list_items); 

    Intent intent = getIntent(); 
    categoryTitle = intent.getStringExtra(categoryName); 

    if(Arrays.asList(FragmentHelper.Days).contains(categoryTitle)) { 
     header.setText("Start the workout"); 
     addButton.setText("Start"); 
     addButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Context context = v.getContext(); 
       Intent intent = new Intent(context, ItemDetailActivityCopy.class); 
       Bundle extras = new Bundle(); 
       List<ListItem> items = listManager.getList(categoryTitle); 
       ArrayList<String> itemName = new ArrayList<>(); 
       ArrayList<String> itemTime = new ArrayList<>(); 
       ArrayList<String> itemNumberOfSets = new ArrayList<>(); 

       for(int i = 0; i < listManager.getNumberOfItemsCopy(categoryTitle); i++) { 
        itemName.add(items.get(i).getDescription()); 
        itemTime.add(String.valueOf(items.get(i).getTime())); 
        itemNumberOfSets.add(String.valueOf(items.get(i).getNumberOfSets())); 
       } 
       Log.d("Title:", itemName.toString()); 
       Log.d("Time:", itemTime.toString()); 
       Log.d("Num of sets:", itemNumberOfSets.toString()); 
       extras.putStringArrayList(ItemDetailActivityCopy.itemName.toString(), itemName); 
       extras.putStringArrayList(ItemDetailActivityCopy.itemTime.toString(), itemTime); 
       extras.putStringArrayList(ItemDetailActivityCopy.itemNumberOfSets.toString(), itemNumberOfSets); 
       intent.putExtras(extras); 
       context.startActivity(intent); 
      } 
     }); 
    } 
} 
+0

の可能性のある重複した[別のアクティビティへのArrayList を渡すと、二重に変換する方法](http://stackoverflow.com/questions/22640669/how-to-pass-an-あなたがこれをどう決めたのですか? –

+2

"残りはありません"エクストラの値を取得するコードはどこにありますか?あなたのエキストラの鍵はむしろ奇妙なことに注意してください。通常、他のオブジェクトの 'toString()'ではなく、定数を使用します。 – CommonsWare

+0

[Passing and ArrayList from intent]の重複可能性があります。(http://stackoverflow.com/questions/41014704/passing-and-arraylistservicethroughthroughent) –

答えて

0

パスから他のActivityには、ArrayList<String>を取得します他の活動から、

ArrayList<String> listItems; 
listItems = getIntent().getStringArrayListExtra("LIST_ITEMS"); 
+1

**詳細**、これがどのように解決するか説明してください問題。 – CommonsWare

+0

私は詳細に説明しました、私の答えの送信メソッドを使用して、1つのアクティビティから別の –

+0

へのArrayListのArrayListを取得、それは動作しますが、なぜそれがなかったのか分かりません。 – Oleh

関連する問題