Bundle

2935 ワード

APIドキュメント:
Bundleクラスはfinalクラスです://継承できません.すなわち、サブクラスpublic final class Bundle extends Objec timplements Parcelable Cloneableがありません.
     
2つのActivity間の通信に使用します.具体的な方法は次のとおりです.
             1.Bundleクラスを新規作成
 
               Bundle bundle=new Bundle();
 
             2.Bundleクラスにデータを入れる(key-value形式、もう一つのActivityでデータを取るときはkeyを使い、対応するvalueを探し出す)
                bundle.putString("key","value");
             3.新しいintentオブジェクトを作成し、bundleをこのintentオブジェクトに追加します.
                Intent intent=new Intent( );
                intent.putExtras(bundle);
             4.keyに対応するvalueを取得
                Bundle bundle=getIntent().getExtras();
                String data=bundle.getString("key");
1つのActivityが別のActivityを起動すると、同時にいくつかのデータが渡される必要がありますが、2つのActivityの間にはもともと「メッセージング」:Intentがあるので、携帯する必要があるデータをIntentに入れることができます.Intentは、次のような複数のリロード方法を提供します.
PutExtras(Bundle extras):携帯するパケットをIntentに入れる
Bundle getExtras():Intentが携帯するパケットを取り出す
PutExtra(String name,Xxx value):Inentにkey-valueペアでデータを格納する
getXxxExtra(String name):指定したタイプのデータをIntentからkeyで取り出す
Bundleは単純なデータ・ポータブル・パッケージであり、Bundleオブジェクトにはデータを格納するための複数の方法が含まれています.
putXxx(String key,Xxx data):BundleにInt,Longなどの各種データを入れる
putSerializable(String key,Serializable data):Bundleにシーケンス可能なオブジェクトを入れる
Bundleデータポータブルパッケージのデータを取り出すには、次の方法があります.
getXxx(String key):BundleからInt、Longなど様々なタイプのデータを取り出す
getSerializable(String key,Serializable data):Bundleからシーケンス可能なオブジェクトを取り出します.
実際、Intentが提供するputExtras(Bundle extras)、getXxxExtra(String name)メソッドは、Intentが携帯するBundleのデータに直接アクセスする便利な方法にすぎません.
プログラムがIntentのputExtra(String name,Xxx value)メソッドを呼び出してIntentにデータを格納すると、そのIntentにBundleオブジェクトがすでに携帯されている場合、そのメソッドは直接Intentが携帯しているBundleにデータを格納する.IntentがBundleオブジェクトをまだ持っていない場合、putExtra(String name,Xxx value)メソッドは、まずIntentにBundleを作成し、Bundleにデータを格納します.
Intentセクションのソースコードは次のとおりです.
1  public Intent putExtra(String name, String[] value) { 2         if (mExtras == null) { 3             mExtras = new Bundle(); 4  } 5  mExtras.putStringArray(name, value); 6         return this; 7     }