Bundleの説明と使い方

2221 ワード

Android初心者が初めてBundleに出会ってIntentパスに登場した.1.Bundleクラスの役割Bundleクラスは、key-value名の値ペアの形式の値を格納するためのMapと同様のデータキャリアである.Mapに対して、putString()/getString()/getString()/putInt()/getInt()などの一般的なタイプのputXxx()/getXxx()メソッドが用意されています.putXxx()はBundleオブジェクトにデータを入れるために使用され、getXxx()はBundleオブジェクトからデータを取得するために使用されます.Bundleの内部は実際にはHashMapタイプの変数を用いてputXxx()メソッドに入れられた値を格納する.BundleはIntentの値をインポートするためのパッケージです.
2.Intentの2つの基本的な使い方:1つは明示的なIntentであり、すなわちIntentオブジェクトを構築する際に受信者を指定する方式であり、この方式は普通の関数呼び出しと類似しており、多重化の粒度に差があるだけである.2もう1つは暗黙的なIntentである.すなわち、Intentの送信者は、Intentオブジェクトを構築する際に、受信者が誰であるかを知らず、関心を持たない.この方式は関数呼び出しとの差が大きく、送信者と受信者との結合を低減するのに有利である.3.IntentダイレクトパスとBundleパッケージによるパスの比較①AActivityからBActivityにジャンプするには2つのIntentを書く必要があり、関連するパスを2回書く場合は、Intentが値を追加する方法を2回書く必要があります.②1つのBundleで直接値を保存してからIntentに保存するとコードがより簡潔になります.
需要:もし私が今Activity A、B、Cを持っていたら;今、私はAを通じてBを通ってCに値を伝えます.分析:どうやって伝えますか.もしIntentを使うならA->Bは先に書いてからBの中ですべて取り出してから値をIntentの中に詰めてからCに飛び込んで疲れますか?もし私がAでBundleを使ったら、BにBundleを渡してBにCに転送すれば直接行けます.そうすれば、BでBundleオブジェクトに新しいkey-valueを追加してもCで取り出すことができるというメリットもあります.
次に、Intentの2つの追加データの書き方を見てみましょう.
1つ目の書き方は、Intentにデータを一括追加するために使用されます.
Intent intent = new Intent();
  Bundle bundle = new Bundle();//        
  bundle.putString("name","Mike");
  intent.putExtras(bundle);//        ,key         , Map    

2つ目の書き方:Bundleではなく、データを一つ一つIntentに追加するのが便利で、コードが簡潔です.
Intent intent = new Intent();
  intent.putExtra("name","XXX");//  putExtras

データを転送したら、IntentとBundleを取り出す方法を見てみましょう.getIntent()は伝達されたIntentを得ることができ,2はこのIntentに基づいてgetExtras()を呼び出してBundleを得る.③データ型に応じてBundleからデータをgetできます.例えばString str=bundle.getString(“Name”);キーが「Name」の文字列、int num=bundleが得られる.getInt(“code”);キーが「code」の整数型が得られた.また、getExtrasとgetExtraの違いにも注意してください.バンドsはBundleの値の追加と値の取得に使用されます.
上記の内容の出所は以下の通りです.(http://www.xuebuyuan.com/1745335.html)