0

あるアクティビティから別のアクティビティに String 配列を渡そうとしていますが、2 番目のアクティビティで配列を読み取ろうとすると、値が 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) は、配列を返すメソッドです。

2番目のアクティビティで配列を読み取ろうとしている方法は次のとおりです。

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

2 番目のアクティビティの配列を、渡された対応する配列値で初期化するにはどうすればよいですか? 値のいずれかを読み取ろうとすると、それらは初期化されておらず、null です。

4

3 に答える 3

1

バンドルを使用しないでこれを試し、最初に配列を計算します。

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

そして、それらを次のように受け取ります

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

バンドルとエクストラをいじっていると思います。この質問を見てください。Intent.putExtra で配列を送信するのに役立つと思います

于 2012-04-30T15:37:58.843 に答える
0

配列を含むバンドルを別のエクストラ内にネストしています。つまり、「passedArray」エクストラ (バンドル) を取得してから、抽出したばかりのバンドルから「Array」を取得する必要があります。代わりに、コードをこれに変更します

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