arraylist中的对象在外部库中定义。该对象包含一些int值以及float []。
如何将所有ArrayList从活动传递到另一个? 谢谢!
顺便说一句,我没有对象类的控制权。
答案 0 :(得分:1)
它取决于数组列表中的对象类型。如果你可以控制它并且可以让它实现Parcelable,那么你可以使用Intent.putParcelableArrayListExtra
。
另一种方法是扩展Application并将ArrayList存储在那里。然后它不需要在Intent中传递,并且应用程序中的所有活动都可以通过调用getApplication()
来访问它。 Application对象将在应用程序的生命周期内保留,存储在其中的任何数据也将如此。
编辑:
为此使用Application对象:
MyApplication
的类(我们称之为android.app.Application
)。声明一个字段(让我们称之为array
)来保存数组列表。MyApplication
标记中指定名称<application>
。系统会在为您的应用创建流程时创建MyApplication
的实例。((MyApplication) getApplication()).array
。您在第一个活动中初始化它并在第二个活动中检索它。另一种完全不同的方法是在某个类中声明一个静态单例。文档实际上建议将子类化Application更加模块化。这是一种黑客攻击,因为它基本上宣告了一个全局变量。但我认为这不仅仅是将随机数据放在Application对象中而已。“
答案 1 :(得分:0)
Intent intent = new Intent(this, TargetActivity.class);
intent.putExtra("nameOfArray",YOUR_ARRAY_LIST);
startActivity(intent);