这是在android平台上,我有一个类型对象列表(FitItem),我希望将列表从我的活动A传递到另一个活动B,并且在活动B上我希望再次获取对象列表
答案 0 :(得分:2)
Intent yourIntent = new Intent(activityA.this, activityB.class);
Bundle yourBundle = new Bundle();
yourBundle.putString("name", value);
yourIntent.putExtras(yourBundle);
startActivity(yourIntent);
您可以在下一个Activity
(在onCreate()
中)获得价值:
Bundle yourBundle = getIntent().getExtras();
String s = yourBundle.getString("name");
此示例传递String
,但您应该能够掌握如何将其用于其他对象。
答案 1 :(得分:1)
对于自定义类:
您必须让FitItem
类实现Parcelable。
然后在活动A中,从Intent
对象,使用putParcelableArrayListExtra将FitItem
列表传递给活动B,在活动B中,使用getParcelableArrayListExtra检索FitItem
如果要传递String,Integer,Float等列表,请参阅bschultz post
答案 2 :(得分:1)
您必须序列化您的对象。
" Seriawhat"
好的,首先要做的事情是:What is object serialization?
"知道了,但我该怎么做?"
您可以使用Parcelable(更多代码,但更快)或Serializable(更少代码,但更慢)。
Parcelable vs Serializable
"节省一些时间,告诉我代码!"
好的,如果您使用 Parcelable ,请参阅this和/或this。
希望有所帮助!
答案 3 :(得分:0)
如果对象是可序列化的,那么只需将它们作为额外内容添加到intent中。我想是这样的:
// in Activity A, when starting Activity B
Intent i = new Intent(this, ActivityB.class);
i.putExra("fitItemList", fitItemList);
startActivity(i);
// in Activity B (onCreate)
ArrayList<FitItem> fitItemList = savedInstanceState.getSerializableExtra("fitItemList");
编辑: 就像bschultz已发布的那样:))
答案 4 :(得分:0)
实现在模型类中可序列化。然后,您可以使用包/意图传递模型类。