【发布时间】:2011-06-22 01:12:59
【问题描述】:
arraylist 中的对象是在外部库中定义的。该对象包含一些 int 值和一个 float[]。
如何将所有 ArrayList 从一个活动传递到另一个活动? 谢谢!
顺便说一句,我没有对象类的控制权。
【问题讨论】:
标签: android android-activity arraylist
arraylist 中的对象是在外部库中定义的。该对象包含一些 int 值和一个 float[]。
如何将所有 ArrayList 从一个活动传递到另一个活动? 谢谢!
顺便说一句,我没有对象类的控制权。
【问题讨论】:
标签: android android-activity arraylist
这取决于数组列表中的对象类型。如果你可以控制它并且可以让它实现 Parcelable,那么你可以使用Intent.putParcelableArrayListExtra。
另一种方法是扩展 Application 并将您的 ArrayList 存储在那里。然后就不需要在 Intent 中传递了,应用程序中的所有活动都可以通过调用getApplication() 来访问它。 Application 对象将在应用程序的整个生命周期内持续存在,其中存储的任何数据也将持续存在。
编辑:
为此使用 Application 对象:
android.app.Application 的类(我们称之为MyApplication)。声明一个字段(我们称之为array)来保存您的数组列表。<application> 标记中指定名称MyApplication。系统会在为您的应用创建进程时创建MyApplication 的实例。((MyApplication) getApplication()).array。您在第一个活动中初始化它并在第二个活动中检索它。另一种完全不同的方法是在某个类中声明一个静态单例。文档实际上推荐这个而不是子类化应用程序,因为它更加模块化。这是一种 hack,因为它基本上是在声明一个全局变量。但我想这并不比将随机数据放入 Application 对象中更多。
【讨论】:
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("nameOfArray",YOUR_ARRAY_LIST);
startActivity(intent);
【讨论】: