2010-12-13 37 views
22

我有2字符串数组里面第一个Activity - A,现在我需要将这两个数组传递给second_activity - B,我该怎么做?在android活动之间传递字符串数组

我知道在Android中Intent样的概念,并已通过只是单一变量值到另一个活动,但我还没有实现通过活动之间的字符串数组的概念,我已经冲浪网为相同。

请让我知道了可能的解决方案。

回答

68
Bundle b=new Bundle(); 
b.putStringArray(key, new String[]{value1, value2}); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 


希望这会帮助你。

为了阅读:

Bundle b=this.getIntent().getExtras(); 
String[] array=b.getStringArray(key); 
+0

@viv thanx的快速支持,但你可以请让我知道“钥匙”,它是一个单值或者一个数组?请输入 – 2010-12-13 13:04:47

+0

它只是一个你想在另一个活动中捕获你的数组的名字......例如:array1或array2:所以你只能在其他活动中用这个名字捕获它...... – viv 2010-12-13 13:05:53

+0

@viv雅我已经完成,应该做什么来读取第二个活动中的包? – 2010-12-13 13:08:01

3

意图进行数据转换成键值地图,其中“关键”是您将数据存储到意向时,选择一个字符串名称标识符。当读取这些数据时,您会请求相同的'密钥'。您可以将各种数据类型存储在单个意图中。

+0

亚我是做愚蠢的错误,同时为支撑问一个问题关于“钥匙”,顺便说一句感谢名单 – 2010-12-13 13:16:42

4

不能直接回答这个问题,但你也可以在你的捆绑使用.putStringArrayListExtra()。它比发送字符串数组更灵活。

Bundle b=new Bundle(); 
b.putStringArrayListExtra("URL_ARRAY_LIST", 
         myStringArrayList); 
Intent i=new Intent(context, Class); 
i.putExtras(b); 

然后你就可以得到此ArrayList如下:

ArrayList<String> urls; 
urls = getIntent().getStringArrayListExtra("URL_ARRAY_LIST"); 
+1

是它不这个问题的答案正确,但是我们可以使用这种替代解决方案。顺便说一句,问题差不多4年了:-) – 2014-06-27 05:00:44

+0

@PareshMayani我知道它是旧的我需要跨两个活动传递字符串数据是动态的,所以字符串数组效率低下,因为我们无法改变大小这是解决方案我的问题,并希望分享它。 – 2014-06-27 05:08:49

+0

@PareshMayani四年后你遇到过任何新的解决方案吗? – 2015-01-20 10:02:57