初始化从另一个活动传递的数组

时间:2012-04-30 15:26:06

标签: android arrays android-activity

我正在尝试将String数组从一个活动传递到另一个活动但是当我尝试在第二个活动中读取数组时,值为null。

以下是我从第一个活动传递数组的方法:

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");

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

3 个答案:

答案 0 :(得分:1)

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

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

接收它们

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我认为你正在搞乱捆绑和附加功能。看看这个问题。我认为它可以帮到你 Sending arrays with Intent.putExtra