2011-03-16 84 views
1

我想将“ArrayList objArrayList”从一个活动传递给第二个活动,并且希望在那里接收。我正在创建一个简单的类,其中有四个数组列表。我创建该类的对象,并通过传递参数添加到arraylist中调用该类的方法。之后,我在objArrayList中添加该类对象。 我可以将objArrayList从一个活动传递给第二个活动并在那里接收它?如何将ArrayList <object>从一项活动发送到第二项活动?

谢谢, 维沙卡。

回答

2

第一情境(可活动/服务等)

您有几种选择:

1)使用BundleIntent

Intent mIntent = new Intent(this, Example.class); 
Bundle extras = mIntent.getExtras(); 
extras.putString(key, value); 

2)创建新套装

Intent mIntent = new Intent(this, Example.class); 
Bundle mBundle = new Bundle(); 
mBundle.extras.putString(key, value); 
mIntent.putExtras(mBundle); 

3)使用的意图

putExtra()快捷方法
Intent mIntent = new Intent(this, Example.class); 
mIntent.putExtra(key, value); 

新的上下文(可以是活动/服务等)

Intent myIntent = getIntent(); // this getter is just for example purpose, can differ 
if (myIntent !=null && myIntent.getExtras()!=null) 
    String value = myIntent.getExtras().getString(key); 
} 

注:捆绑有 “得” 与“放“所有原始类型的方法,Parcelables和Serializables。我只是将Strings用于示范目的。

您的Arraylist类必须是Parcelable或Serializable。所以你应该继承它来添加这些功能,因为我认为他们错过了最初的实现。

然后看看他们会帮助你的其他问题。 Serialization issue with SortedSet, Arrays, an Serializable

+0

对于选项2,我看不到任何可以应用于mBundle的“额外”。 – hornetbzz 2012-08-31 14:37:39

0

使用标准的意图机制。把你的列表放到意图的附加区域并通过它。

相关问题