2012-08-10 12 views
5

この質問は愚かに聞こえるかもしれませんが、わたしは知っています。いつアクティビティ名をIntent.putExtra()に入れますか?あるケースでは、バンドルでのみ余分に配置しています。それ以外の場合はクラス名で渡しています。私はちょっと混乱していますIntent.putExtra(String, Bundle)私たちはすでにIntentコンストラクタ内の活動名を渡したかどうかを使用する必要がありますか?Intent.putExtra(String、Bundle)対Intent.putExtra(バンドル)

ありがとうございました!

+0

バンドルはいくつかのスペースを割り当てるために使用されますが、私たちは余分なスペースを使用して余分なスペースを使用します(割り当てられたスペースのみ) – Ramkumar

答えて

13

私はあなたが(で)putExtras(Bundle)putExtra(String, Bundle)を意味すると思います。

最初に提供するキーの値としてバンドルが追加されます。バンドルは単純なオブジェクト値です。

2つ目は、提供されたバンドルのすべてのキーと値のペアをインテントに追加します。この場合、バンドルの内容はバンドル自体ではなく、インテントに追加されます。 Mapインタフェースで、それらの

思う:

Map.putAll(Map anotherMap) 
1

Map.put(String key, Object value) 

アプローチは、ここだけの違いです。

Bundle mBundle = new Bundle(); 
mBundle.put(key, value); 

をし、活動

mIntent.putExtras(mBundle); 

にそれを渡し、情報をrecieves他の活動に、ちょうどの内容をつかむ:あなたはBundleを使用している場合、あなたはそれのほぼすべてのタイプを格納することができます

Bundle extras = getIntent().getExtras(); 

をし、このようなbundleの各要素をつかむ::次のように束ね

extras.getString("myKey") 
関連する問題