Android:如何将ArrayList <object>从活动传递到另一个</object>

时间:2011-06-22 01:12:59

标签: android android-activity arraylist

arraylist中的对象在外部库中定义。该对象包含一些int值以及float []。

如何将所有ArrayList从活动传递到另一个? 谢谢!

顺便说一句,我没有对象类的控制权。

2 个答案:

答案 0 :(得分:1)

它取决于数组列表中的对象类型。如果你可以控制它并且可以让它实现Parcelable,那么你可以使用Intent.putParcelableArrayListExtra

另一种方法是扩展Application并将ArrayList存储在那里。然后它不需要在Intent中传递,并且应用程序中的所有活动都可以通过调用getApplication()来访问它。 Application对象将在应用程序的生命周期内保留,存储在其中的任何数据也将如此。

编辑:

为此使用Application对象:

  1. 写一个扩展MyApplication的类(我们称之为android.app.Application)。声明一个字段(让我们称之为array)来保存数组列表。
  2. 在清单MyApplication标记中指定名称<application>。系统会在为您的应用创建流程时创建MyApplication的实例。
  3. 任何希望访问该字段的活动都可以使用((MyApplication) getApplication()).array。您在第一个活动中初始化它并在第二个活动中检索它。
  4. 另一种完全不同的方法是在某个类中声明一个静态单例。文档实际上建议将子类化Application更加模块化。这是一种黑客攻击,因为它基本上宣告了一个全局变量。但我认为这不仅仅是将随机数据放在Application对象中而已。“

答案 1 :(得分:0)

Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("nameOfArray",YOUR_ARRAY_LIST);
startActivity(intent);