0

我正在尝试将一个字符串数组从一个活动传递到另一个活动,但是当我尝试在第二个活动中读取该数组时,这些值为空。

这是我从第一个活动传递数组的方式:

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

createArray(text) 是一个返回数组的方法。

这是我在第二个活动中尝试读取数组的方式:

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

如何使用已传递给它的相应数组值初始化第二个活动中的数组?如果我尝试读取任何尚未初始化且为空的值。

4

3 回答 3

1

不要使用 bundle 试试这个并首先计算你的数组:

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

并将它们作为

 String[] array = this.getIntent().getStringArray("passedArray");
于 2012-04-30T15:34:40.467 回答
0

您正在将包含您的数组的捆绑包嵌套在另一个额外内容中。这意味着您必须额外获得“passedArray”(这是一个捆绑包),然后从您刚刚提取的捆绑包中获取您的“Array”。而是将您的代码更改为此

Intent itemIntent = new Intent(this,Details.class); 
itemIntent.putExtra("Array", createArray(text));
startActivity(itemIntent);
于 2012-04-30T15:34:51.170 回答
0

我认为您在搞乱捆绑和附加功能。看看这个问题。我认为它可以帮助您 使用 Intent.putExtra 发送数组

于 2012-04-30T15:37:58.843 回答