2017-04-10 63 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

相关问题