2017-04-10 69 views
0

我嘗試將三個數組傳遞給其他活動,但無論出於何種原因,似乎只有最後一個從父活動傳遞的數組傳遞給子節點,其餘的節點不在 這裏是父活動代碼:如何將多個ArrayList <String>傳遞給另一個活動

@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- arrayliststring到另一個活動 - 轉換 - 它-到雙) –

+2

「休息不」 - 你怎麼樣確定這個?你的代碼從附加功能中檢索值的位置在哪裏?請注意,你的演員的鑰匙很奇怪。通常,我們使用常量,而不是其他對象的'toString()'。 – CommonsWare

+0

的[傳和ArrayList 通過意向(http://stackoverflow.com/questions/41014704/passing-and-arraylistservice-through-intent)可能的複製 –

回答

0

ArrayList<String>從一個Activity到其他Activity,使用putStringArrayListExtra

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

得到ArrayList<String>從其他活動,

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

請解釋,**詳細**,這將如何解決問題。 – CommonsWare

+0

我已詳細解釋,我的回答的使用方法來發送和從一個活動到其他 –

+0

沒錯獲取字符串的ArrayList的,它的工作原理,但我不知道爲什麼它沒有當我捆綁額外=新包(); – Oleh

相關問題