2012-01-17 13 views
2

私のアプリケーションでは2つのアクティビティがあります。私は1つのアクティビティから別のアクティビティにStringの配列を渡したいと思います。この値をアクティビティからアクティビティに渡すにはどうすればいいですか?1つのアクティビティから別のアクティビティにString配列の値を渡す方法は?

+0

を取得するために、これを書くあなたのコードを投稿お願いします。 – anddev

答えて

12

あなたが最初のアクティビティでIntent.getStringArrayExtra

の使用を検討することができます

Intent intent = new Intent(context, NewActivity.class); 
intent.putExtra("string-array", stringArray); 
context.startActivity(intent); 

2つ目で:

Intent intent = getIntent(); 
String [] stringArray = intent.getStringArrayExtra("string-array"); 
+1

を得た。私にフォーマット – Thiru

2

これをシリアル化して、開いてみたい(アクティビティの)エクストラに設定するだけです。
あなたはそのアクティビティのonCreate()でそれを受け取ります。
配列に再度変換します。

+0

可能であれば、サンプルコードを送ってください。 – Thiru

+1

@ kgiannakakisのサンプルの使用を検討してください。それは私が言ったよりもまっすぐです。 Intent.getStringArrayExtraを私の頭からスキップしました。 – akkilis

+0

ありがとうございました。私はその第2の方法で意図を宣言する答え – Thiru

0

その非常にシンプルな、変数の静的&は1つの公共を作ることを確認そのクラスの静的メソッド

public static getArray() 
{ 
     return array; 
} 

このメソッドには、アクセスしたい別のアクティビティからアクセスします。

+0

を送ってください。それはうまく働いています:) – Thiru

+3

私は、データ変数を静的にし、どこからでもそれらを変更するためのアクセス権を与えることは、良いコーディング方法ではないと言います。最も良い方法は、それを意図の束に通すことです。 @kgiannakakisのansと同じようにしてください。コードの安定性と堅牢性については、良いプログラマーになります。 – akkilis

1

Intent myIntent = new Intent(getApplicationcontext, NewActivity.class); intent.putExtra("mStringArray", mystringArray); startActivity(myIntent);

のonCreateイベントの新しい活動の

String[] mystringArray = getIntent().getStringArrayExtra("mStringArray");

あなたはバンドルを使用shoud異なるデータ型でより多くのデータを送信する場合。活動の一つで

+0

受信アクティビティの意図はどこに宣言していますか? –

+0

非常に洞察力があります。 –

2

、配列を作成し、別のアクティビティにそれを渡すために、このコードを記述します。第二に活動の

String[] array1={"asd","fgh","dcf","dg","ere","dsf"}; 
Intent i=new Intent(MainActivity.this,Main2Activity.class); 
i.putExtra("key",array1); 
startActivity(i); 

を、あなたの配列

String[] array = getIntent().getStringArrayExtra("key"); 
関連する問題