【问题标题】:Mechanism of passing ArrayList between activities [duplicate]活动之间传递ArrayList的机制[重复]
【发布时间】:2018-01-12 15:34:02
【问题描述】:

首先我想说的是如何在活动之间传递 Arraylist。我想知道是使用意图传递整个数组列表还是仅传递其基址。 (如在 C 中) 此外,如果传递了整个数组列表,那么是否有任何机制可以像在 c 中那样仅传输其基数,以便多个活动可以使用单个数组列表 n 而不是同一数组列表的副本。 注意 在否决这个问题之前,我说我已经访问了许多关于 stackoverflow 的与数组列表相关的问题,但没有一个能够解释我的问题。

【问题讨论】:

  • 你能给我一些参考资料
  • 确定 google.com + android 源码包
  • 你为什么不创建一个示例并调试。自己检查一下。我认为这是找出答案的最佳方法。
  • 我确实做到了,我认为整个数组列表都通过了,但我不确定这一点,只是为了确认我已经发布了这个问题

标签: java android arraylist


【解决方案1】:

可以通过 Intent 传递的数据是 Serializable、Parcelable 或原始类型。 ArrayList 已经是可序列化的,因此在跨活动传递时会被序列化。 如果您想在不同的活动中使用相同的 Arraylist,您可以创建单例以从不同的点访问相同的 ArrayList

【讨论】:

  • 我了解到单例的性能效率不高,有没有更好的选择
【解决方案2】:
ArrayList<String> arr = new ArrayList<>();
        arr.add("Hello");

        Intent intent = new Intent(MainActivity.this, ToActivity.class);
        intent.putExtra("array_list", arr);
        startActivity(intent);

在 ToActivity 活动中:

Bundle bundle = getIntent().getExtras();
         if (bundle != null) {
            ArrayList<String> arr = b.getStringArrayList("array_list");
        }

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2012-08-29
    • 2023-03-23
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多