【问题标题】:How to pass multiple ArrayList<String> to another activity如何将多个 ArrayList<String> 传递给另一个活动
【发布时间】:2017-04-10 20:49:12
【问题描述】:

我尝试将三个数组传递给其他活动,但无论出于何种原因,似乎只有一个从父活动传递的最后一个数组传递给子活动,其余的则不 这是父活动代码:

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

【问题讨论】:

标签: android android-intent


【解决方案1】:

ArrayList&lt;String&gt;从一个Activity传递给另一个Activity,使用putStringArrayListExtra

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

从其他活动中获取ArrayList&lt;String&gt;

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

【讨论】:

  • 详细说明,这将如何解决问题。
  • 我已经详细解释过了,使用我的答案的方法从一个Activity发送&获取String的ArrayList到另一个
  • 是的,它有效,但我不明白为什么当我 Bundle extras = new Bundle();
  • 还有一件事,我怎样才能传递一个 Long 数组而不是字符串?
  • putExtra 方法与long[]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多