2012-04-30 28 views
0

我想从一个活动传递一个字符串数组到另一个活动,但是当我尝试在第二个活动中读取数组时,值为null。从另一个活动传递的初始化数组

下面是如何我传递数组从第一活动:

Bundle bundle = new Bundle(); 
bundle.putStringArray("Array", createArray(text)); 
Intent itemIntent = new Intent(this,Details.class); 
itemIntent.putExtra("passedArray", bundle); 
startActivity(itemIntent); 

createArray(文本)是返回阵列的方法。

这里是如何我试图读取数组中的第二个活动:

Bundle extras = this.getIntent().getExtras(); 
String[] array = extras.getStringArray("Array"); 

如何初始化在第二活动阵列与已经传递给它相应的数组值?如果我尝试读取它们尚未初始化的任何值并且为空。

回答

1

不要使用捆绑试试这个,首先计算你的数组:

itemIntent.putExtra("passedArray", createArray(text)); 
startActivity(itemIntent); 

,并接收作为

String[] array = this.getIntent().getStringArray("passedArray"); 
+0

不得不使用'Bundle extras = this.getIntent()。getExtras(); String [] array = extras.getStringArray(“passedArray”);'接收数组,但除了它的工作。谢谢! – user1362255

0

你嵌套包含在另一个额外的阵列捆绑。 这意味着你必须获得“passedArray”extra(这是一个包),然后从你刚刚提取的包中获取你的“Array”。相反,改变你的代码到这

Intent itemIntent = new Intent(this,Details.class); 
itemIntent.putExtra("Array", createArray(text)); 
startActivity(itemIntent); 
+0

如果我使用,我得到的错误消息“方法putStringArray(字符串,字符串[])是未定义的类型意图”? – user1362255

+0

糟糕。我编辑了我的答案以解决我的错误。它应该只是putExtra – dymmeh

相关问题